写一个自动判断字符串是否正确配对的方法
时间: 2023-06-02 18:03:17 浏览: 91
JavaScript 实现判断是否为字符串
可以使用栈来实现字符串的配对判断。具体方法是遍历每个字符,如果是左括号则入栈,如果是右括号则判断栈顶元素是否与之匹配,如果匹配则弹出栈顶元素,否则说明字符串不符合配对规则。最后遍历完整个字符串后,如果栈为空,则说明字符串符合配对规则,否则不符合。
以下是一个Python实现:
```python
def is_valid(s):
stack = []
for c in s:
if c == '(' or c == '[' or c == '{':
stack.append(c)
else:
if not stack:
return False
if c == ')' and stack[-1] == '(' or \
c == ']' and stack[-1] == '[' or \
c == '}' and stack[-1] == '{':
stack.pop()
else:
return False
return not stack
```
这个方法的时间复杂度是 $O(n)$,空间复杂度也是 $O(n)$。注意在判断栈顶元素是否与当前字符匹配时可以使用字典存储左右括号匹配关系,这样代码更简洁。
阅读全文