在python中用栈检验字符串中括号是否对应
时间: 2023-12-27 14:03:28 浏览: 87
用栈判断括号是否匹配
可以使用栈来检验字符串中括号是否对应。具体实现方法如下:
1. 定义一个栈,用于存储左括号。
2. 遍历字符串中的每个字符,如果是左括号(包括小括号,中括号和大括号),则将其入栈。
3. 如果是右括号,则判断栈顶元素是否为相应的左括号,如果是,则弹出栈顶元素,否则说明括号不对应,返回False。
4. 遍历完字符串后,如果栈为空,则说明括号对应,返回True,否则说明还有左括号没有对应的右括号,返回False。
下面是具体的实现代码:
```python
def is_valid(s: str) -> bool:
stack = []
mapping = {')': '(', ']': '[', '}': '{'}
for char in s:
if char in mapping:
top_element = stack.pop() if stack else '#'
if mapping[char] != top_element:
return False
else:
stack.append(char)
return not stack
```
其中,mapping是一个字典,用于存储右括号与相应的左括号的映射关系。在遍历字符串时,如果遇到右括号,就通过映射关系找到相应的左括号,然后判断栈顶元素是否为该左括号。如果是,则弹出栈顶元素;否则说明括号不对应,返回False。如果遍历完字符串后,栈为空,则说明括号对应,返回True;否则说明还有左括号没有对应的右括号,返回False。
阅读全文