LeetCode20题:有效的括号(Python)

it2023-09-09  73

#主要的思路就是遍历字符串,遇到左括号就将对应的右括号压入列表然后取出与左括号匹配 #不同情况:1.括号的个数为奇数(){,对应的代码是 if len(s) % 2 == 1:return False # 2.类型不匹配[},对应的代码是bracket!=stack.pop() # 3.以右括号开始或者右括号多了出来))、([{}]))),对应代码是elif len(stack)==0 # 4.左括号((多了出来,对应的代码是return len(stack)==0,不等于0就是栈里留了偶数个左括号;等于0就是栈里的括号都匹配完成,返回真 class Solution(object): def isValid(self, s): if len(s) % 2 == 1: return False pairs={'{':'}','(':')','[':']'} stack=[] for bracket in s: #如果该字符是左括号就将右括号压入栈 if bracket in pairs: #if i in 字典 这个句子的i是指字典里的键而不是值 stack.append(pairs[bracket])#将右括号放进列表 #如果是像这种情况([{}])))、)...的话len(stack)==0这个条件就会为真,后面这个条件就是括号类型不匹配 elif len(stack)==0 or bracket!=stack.pop(): return False #最后的这个return的话是针对((这个情况的话 return len(stack)==0 if bracket in pairs:

这句代码是想提醒一下我自己:其中的bracket是一个变量,pairs是一个字典类型,这个if语句是判断bracket在不在pairs的键里,不是值。

最新回复(0)