在Python中检查括号是否平衡

很多时候,我们需要查找表达式是否相对于括号括起来。所谓平衡,是指每个左括号都有一个对应的右括号,并且括号的顺序是正确排序的。这对于编写使用括号的程序或数学表达式非常重要。在本主题中,我们将看到如何以编程方式找出包含方括号的表达式是否平衡。

通过消除

在此方法中,我们找出最里面的括号对并将其替换为空值。我们一直这样做,直到所有成对的括号都被替换为止。如果还剩下一些括号,则表达式将不平衡,否则将发现表达式已平衡。

示例

def brackets(expression):
   all_br = ['()', '{}', '[]']
   while any(x in expression for x in all_br):
      for br in all_br:
         expression = expression.replace(br, '')
   return not expression

# calling the function
input_string = "([]{}()"
if brackets(input_string):
   print(input_string,"balanced")
else:
   print(input_string,"Not balanced")

输出结果

运行上面的代码给我们以下结果-

([]{}() Not balanced