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) ?
|