initial commit
This commit is contained in:
23
bash/matching-brackets/matching_brackets.sh
Executable file
23
bash/matching-brackets/matching_brackets.sh
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env bash -x
|
||||
shopt -s extglob
|
||||
str=$1
|
||||
# Brute force algorithm:
|
||||
# 1 - remove all unwanted chars: keep only {}[]()
|
||||
str=${str//[^\{\}\(\)\[\]]}
|
||||
|
||||
res=true
|
||||
# 2- remove all pairs of [], {}, (). loop until string is empty (match ok) or unchanged
|
||||
# (nok)
|
||||
loop=1
|
||||
while [[ ${#str} > 0 ]]
|
||||
do
|
||||
str2=${str//+(\[\]|\(\)|\{\})}
|
||||
if [[ ${#str2} == ${#str} ]]; then
|
||||
res=false
|
||||
break
|
||||
fi
|
||||
str="$str2"
|
||||
done
|
||||
|
||||
echo $res
|
||||
exit 0
|
Reference in New Issue
Block a user