在python中用栈实现括号匹配算法
时间: 2024-05-04 15:16:34 浏览: 117
答案:
可以通过栈的特性来判断括号是否匹配。具体实现如下:
1. 新建一个空栈。
2. 遍历字符串中的每个字符,对于每个字符:
a. 如果是左括号,将其压入栈中。
b. 如果是右括号,弹出栈顶元素,如果栈顶元素不是相应的左括号,则说明括号不匹配。
3. 遍历结束后,如果栈为空,则说明括号匹配,否则说明有左括号没有右括号与之匹配。
下面是一个使用栈实现括号匹配的示例代码:
```python
def bracket_match(s):
stack = []
left_brackets = ['(', '[', '{']
right_brackets = [')', ']', '}']
for c in s:
if c in left_brackets:
stack.append(c)
elif c in right_brackets:
if not stack:
return False
if left_brackets.index(stack.pop()) != right_brackets.index(c):
return False
return not stack
s = "{[()]}"
print(bracket_match(s)) # Output: True
s = "{[(])}"
print(bracket_match(s)) # Output: False
s = "()[]{}"
print(bracket_match(s)) # Output: True
```
阅读全文