Python用栈匹配括号代码
时间: 2024-09-25 17:01:40 浏览: 30
在Python中,我们可以使用栈(Stack)数据结构来解决括号匹配的问题。括号匹配通常涉及到判断给定的一系列左括号(如`(`、`{`、`[`)是否能通过相应的右括号(如`)`、`}`、`]`)完美闭合。下面是一个简单的Python代码示例:
```python
def is_valid(s):
stack = []
opening_brackets = ['(', '[', '{']
closing_brackets = [')', ']', '}']
for char in s:
if char in opening_brackets:
stack.append(char)
elif char in closing_brackets:
if not stack or stack.pop() != opening_brackets[closing_brackets.index(char)]:
return False
return not stack # 如果栈为空,则所有括号都已匹配,返回True;反之False
# 测试例子
print(is_valid("()")) # True
print(is_valid("({[]})")) # True
print(is_valid("({[))")) # False
```
这个函数遍历输入字符串`s`中的每个字符,如果是开括号就入栈,如果是关括号则检查栈顶元素是否与其匹配,如果不匹配或者栈为空,则返回`False`。遍历结束后,如果栈为空说明所有的括号都配对了,所以返回`True`,否则返回`False`。
阅读全文