class Solution:
def isValid(self, s: str) -> bool:
stack = []
for i in s:
if i == "(":
stack.append(")")
elif i == "[":
stack.append("]")
elif i == "{":
stack.append("}")
# 3号错误:s仍有右括号,可stack已空,右括号失配 ( [] ) );
#2号错误:stack最后一个右括号与当前字符失配 ( [} )
#注意这两个条件不能颠倒位置,因为若2号在前,那么永远无法发现3号错误,因为栈溢出了
#而若按照如下写法,判断or右边时意味着栈肯定不为空
elif (not stack) or stack[-1] != i:
return False
else:
stack.pop()
# 1号错误: 左括号太多 ( [] ()
return True if not stack else False
Leetcode 20.有效的括号 Valid Parentheses - Python
最新推荐文章于 2024-06-21 11:16:10 发布