给出队列括号匹配的代码
时间: 2024-12-13 18:13:45 浏览: 9
队列括号匹配的问题通常涉及到栈数据结构的应用,可以使用深度优先搜索(DFS)或者广度优先搜索(BFS)配合栈来解决。这里是一个简单的Python代码示例,使用了栈来检查给定字符串中的括号是否正确匹配:
```python
def is_valid(s):
stack = []
pairs = {')': '(', '}': '{', ']': '['}
for char in s:
if char in pairs.values():
stack.append(char)
elif char in pairs.keys() and (not stack or stack.pop() != pairs[char]):
return False
return not stack # 如果最后还有剩余元素在栈里,说明有不匹配的括号
# 测试代码
test_cases = ["()()", "({[]})", "[{()}]", "({[()]})", "({[()])"]
for test_case in test_cases:
print(f"{test_case}: {'Yes' if is_valid(test_case) else 'No'}")
```
这个函数会遍历输入的字符串`s`,如果遇到左括号就入栈,遇到右括号则尝试弹出对应的左括号并比较是否匹配。如果不匹配或者栈为空,返回`False`;遍历结束后如果没有剩余的括号在栈中,表示所有括号都已正确配对,返回`True`。
阅读全文