class Solution:
def isValid(self, s: str) -> bool:
if len(s) % 2 == 1:
return False #当 s 长为奇数时,为错误
pairs = {
")": "(",
"]": "[",
"}": "{",
} # 给出字典
stack = list() #个人感觉这很迷惑人,stack是栈的意思(英文),如果这样写比较好点 stack=[ ] 此时的stack只是一个普通的列表,先进后出的性质是在下面定义的
for ch in s:
if ch in pairs:
if not stack or stack[-1] != pairs[ch]:
return False #如果列表为空,或者列表尾部(也就是栈的顶部)不能和 pairs[ch] 配对,返回 False
stack.pop() #如果 ch in pairs 将栈顶元素pop
else:
stack.append(ch)
return not stack
来源:力扣(LeetCode)