编写程序判断一个左右圆括号是否匹配
时间: 2024-10-21 12:03:23 浏览: 18
编写一个程序来判断给定的字符串中左括号(如 '(', '{', '[')和右括号(如 ')', '}', ']')是否配对,通常需要采用栈数据结构。你可以通过遍历字符串,对于每个遇到的括号:
1. 如果当前字符是一个左括号,将其压入栈中。
2. 如果当前字符是一个右括号,检查栈顶元素是否与其匹配。如果匹配,则弹出栈顶元素;如果不匹配,说明括号不匹配,返回false。
3. 遍历结束后,如果栈为空,说明所有的左括号都有对应的右括号,返回true;否则,返回false,因为存在未匹配的左括号。
这里有一个简单的伪代码示例:
```python
def is_balanced(s):
stack = []
open_chars = ['(', '[', '{']
close_chars = [')', ']', '}']
for char in s:
if char in open_chars:
stack.append(char)
elif char in close_chars:
if not stack or close_chars.index(char) != open_chars.index(stack.pop()):
return False
return stack == [] # 检查剩余的栈是否为空
# 测试示例
print(is_balanced("(){}[]")) # 输出: True
print(is_balanced("({[})")) # 输出: False
```
阅读全文