利用栈判断字符串括号是否匹配
时间: 2023-10-28 07:11:22 浏览: 233
可以使用栈来判断字符串中的括号是否匹配。具体实现如下:
1. 初始化一个空栈
2. 从左到右遍历字符串,对于每个字符:
- 如果是左括号,将其压入栈中
- 如果是右括号,判断栈顶元素是否是与之匹配的左括号,如果是则将栈顶元素出栈,否则返回false
3. 遍历完字符串后,若栈为空,则返回true,否则返回false
以下是示例代码实现:
```python
def is_valid(s: str) -> bool:
stack = []
for c in s:
if c == '(' or c == '[' or c == '{':
stack.append(c)
elif c == ')':
if not stack or stack[-1] != '(':
return False
stack.pop()
elif c == ']':
if not stack or stack[-1] != '[':
return False
stack.pop()
elif c == '}':
if not stack or stack[-1] != '{':
return False
stack.pop()
return not stack
```
其中,`stack[-1]` 表示栈顶元素,`stack.pop()` 表示将栈顶元素出栈。
阅读全文