设计一个算术表达式中包括圆括号,方括号,花括号,判断其中的括号是否匹配(写出源代码)
时间: 2024-10-18 10:23:15 浏览: 50
设计一个程序检查算术表达式中的括号是否匹配可以采用栈数据结构来辅助处理。下面是一个简单的Python示例,它使用递归来遍历字符串并检查括号:
```python
def is_balanced(s):
brackets = {
'(': ')',
'[': ']',
'{': '}'
}
stack = []
def helper(expression):
for char in expression:
if char in brackets.values(): # 遇到闭合括号
if not stack or stack[-1] != brackets[char]: # 如果栈为空或者当前字符对应的开括号不在栈顶
return False
else:
stack.pop() # 移除栈顶元素(对应的开括号)
elif char in brackets.keys(): # 遇到开放括号
stack.append(char)
return not stack # 如果最后栈为空,说明所有括号都已配对
return helper(s)
# 测试例子
expressions = ["()", "[]{}", "({[})", "((()))"]
for expr in expressions:
print(f"{expr}: {is_balanced(expr)}")
阅读全文