每日leetcode(8)
20.有效的括号,判断括号匹配是否正确 这个用栈,当遇到左括号时入栈,当遇到右括号时,先判断栈是否空,为空则返回False,如果不空再判断顶端元素是否和右括号匹配,不匹配则返回False,匹配则继续遍历,遍历完成,判断栈是否为空,代码如下
class Solution(): def isValid(self,s): l=[]#列表模拟栈 d={')':'(','}':'{',']':'['} #建立字典匹配承兑符号 for i in range(len(s)): if s[i]=='(' or s[i]=='[' or s[i]=='{':#左括号入栈 l.append(s[i]) elif s[i]==')' or s[i]==']' or s[i]=='}':#右括号判断 if not l:#要出栈,可是栈空 return False if d[s[i]]==l[-1]:#是否匹配 l.pop()#出栈 else: return False if not l: return True else: return False