用栈实现括号匹配算法代码
时间: 2024-10-18 08:22:04 浏览: 49
括号匹配算法通常使用栈数据结构来验证给定的字符串中的括号是否有效。以下是使用Python编写的一个简单栈实现:
```python
def is_valid(s):
stack = []
mapping = {')': '(', '}': '{', ']': '['}
for char in s:
if char in mapping:
# 如果遇到闭合符,检查栈顶元素是否对应打开符
if not stack or stack[-1] != mapping[char]:
return False
else:
# 匹配成功,移除栈顶元素
stack.pop()
else:
# 遇到开放符,直接压入栈
stack.append(char)
# 如果遍历完字符串还有剩余的开括号,说明不匹配
return len(stack) == 0
# 测试示例
print(is_valid("()[]{}")) # 输出: True
print(is_valid("(]")) # 输出: False
```
这个函数通过遍历输入字符串s中的每个字符,对于每个遇到的开放括号(如'('、'['或'{`'),将其推入栈中;对于闭合括号,如果栈为空或栈顶元素不是其对应的开放括号,则返回False,表示不匹配。如果遍历结束后栈为空,则所有括号都已匹配,返回True。
阅读全文