编写一个算法判断输入的表达式中括号是否配对(假设只含有左、右圆括号)。代码
时间: 2024-09-29 10:06:40 浏览: 68
为了检查给定的字符串中括号是否配对,你可以使用一个栈数据结构。当遇到左括号时,将其压入栈;当遇到右括号时,检查栈顶元素是否为对应的左括号,如果匹配则弹出,如果不匹配则返回False。如果遍历完整个字符串后,栈为空,则说明所有括号都已配对,反之则有未配对的括号。
以下是Python的一个简单实现:
```python
def is_bracket_pair(expression):
bracket_map = {')': '(', '}': '{', ']': '['}
stack = []
for char in expression:
if char in bracket_map:
if not stack or stack[-1] != bracket_map[char]:
return False
else:
stack.pop() # 匹配成功,移除栈顶元素
else:
stack.append(char) # 非括号字符,直接入栈
return not stack # 检查栈是否为空,表示所有括号都已配对
# 测试示例
expressions = ['()', '{}', '[]', '(])', '({[()]})', '(()[])]')
for expr in expressions:
result = is_bracket_pair(expr)
print(f"{expr}: {'匹配' if result else '不匹配'}")
阅读全文