[leetcode] 20. Valid Parentheses 有效的括号匹配 python

用栈这个数据结构来实现这个括号匹配

left='({['

right=')}]'

然后用一个字典的数据类型,来实现与栈顶元素做匹配,dic={')':'(','}':'{',']':'['}(这里注意一下,key是right,value是left)

举个例子:[({})]

[入栈,(入栈,{入栈,}是right的元素,弹出现在栈的栈顶元素stack[-1],与dic中key为}的值做一个匹配,如果stack[-1]不等于dic的value,则返回false,如果值相等,匹配成功,返回True

弹出栈顶元素,剩下的一次类推。知道所有元素出栈后,如果这时栈还有元素,则返回False。

#python
1
class Solution(): 2 def isValid(self,s): 3 stack=[] 4 left='({[' 5 right=')}]' 6 dic={')':'(','}':'{',']':'['} 7 isvalid=True 8 for i in s: 9 if i in left: 10 stack.append(i) 11 elif i in right: 12 if len(stack)<1: 13 isvalid ==False 14 elif dic[i]==stack[-1]: 15 stack.pop() 16 else: 17 isvalid =True 18 break 19 else: 20 continue 21 if stack!=[]: 22 isvalid ==False

猜你喜欢

转载自www.cnblogs.com/lchang0203/p/9240508.html