def judge(expression): stack = Stack() # 把后括号映射成前括号 dict = {‘}‘:‘{‘, ‘]‘:‘[‘, ‘)‘:‘(‘} for i in expression: if i == ‘[‘ or i == ‘{‘ or i == ‘(‘: stack.push(i) if i == ‘]‘ or i == ‘}‘ or i == ‘)‘: #当遍历到后括号时,发现栈里没有前括号 if stack.is_empty(): return False #出栈的数据和前面的括号是否对应 elif stack.pop() != dict[i]: return False #遍历玩表达式后,要再次判断一下栈是否排空了 if not stack.is_empty(): return False else: return True
原文:https://www.cnblogs.com/gaitman/p/12053432.html