20. 有效的括号
https://leetcode-cn.com/problems/valid-parentheses/
解法一:
用栈,一次扫描输入串,将所有左括号入栈,遇到右括号就与栈顶比对,借助两个字典left和right判断是否成对,成对则弹栈,不成对直接返回False。(注意栈不能为空,否则pop会报错)。遇到右括号且栈为空,说明右括号没有匹配,返回False。
最后判断栈是否为空,为空说明匹配完毕。复杂度O(n)
class Solution:
def isValid(self, s: str) -> bool:
stack = []
left = {'(':0, '{':1, '[':2} #左括号字典
right = {')':0, '}':1, ']':2} #右括号字典
for ch in s:
if ch in left: #是左括号
stack.append(ch)
else: #是右括号
if len(stack) > 0 and left[stack[-1]] == right[ch]:
stack.pop()
else:
return False
return len(stack) == 02020.3.24
2024.3.30
最后更新于