I am a Python newbie and I came across this exercise of checking whether or not the simple brackets \"(\", \")\" in a given string are matched evenly.
I have seen ex
An alternative to check for balanced nested parentheses:
def is_balanced(query: str) -> bool:
# Alternative: re.sub(r"[^()]", "", query)
query = "".join(i for i in query if i in {"(", ")"})
while "()" in query:
query = query.replace("()", "")
return not query
for stmt in [
"(()()()())", # True
"(((())))", # True
"(()((())()))", # True
"((((((())", # False
"()))", # False
"(()()))(()", # False
"foo", # True
"a or (b and (c or d)", # False
"a or (b and (c or d))" # True
"a or (b and (c or (d and e)))", # True
]:
print(stmt)
print("Balanced:", is_balanced(stmt))
print()
It works by: