📅  最后修改于: 2023-12-03 15:36:41.543000             🧑  作者: Mango
在编程工作中,我们经常需要处理各种括号匹配的问题,其中一个常见的问题是如何打印一个平衡的括号表达式。本文就介绍如何使用给定的括号打印平衡的括号表达式。
在数学表达式中,括号是用来控制运算符的优先级以及运算的顺序。如果一个表达式中的括号配对正确,且左右括号的数量相等,则称此表达式为平衡的括号表达式,例如:
打印一个平衡的括号表达式的思路很简单,即使用一个栈来存储左括号,在遍历表达式的时候,遇到左括号就入栈,遇到右括号则出栈一个左括号。如果括号匹配,则将对应的括号输出,否则输出错误信息。下面是代码示例:
def print_balanced_parenthesis(s):
stack = []
for c in s:
if c == '(':
stack.append(c)
elif c == ')':
if stack and stack[-1] == '(':
stack.pop()
print('()', end='')
else:
print('Unbalanced', end='')
return
else:
print(c, end='')
if not stack:
return
else:
print('Unbalanced', end='')
s = '(1+2)*3/(4-5)'
print_balanced_parenthesis(s) # 输出:(1+2)*3/(4-5)
s = '(1+(2*3)'
print_balanced_parenthesis(s) # 输出:Unbalanced
s = '(1+2)*3/((4-5)/2)+6'
print_balanced_parenthesis(s) # 输出:Unbalanced
以上代码可以在大多数编程语言中使用,只需要将输出的语法稍作调整即可。
打印平衡的括号表达式是一个比较简单的问题,但是在实际工作中却有很大的用途。希望本文能对大家有所帮助。