题目描述
链接:https://leetcode-cn.com/problems/valid-parentheses/
思路:
利用括号匹配原理:即如果能匹配的化,右扩号一定与左边最后一个对应的左括号匹配,就是栈的后进先用,利用python append和pop()的类似栈顶操作来完成此题。
左括号入栈。
右括号有三种情况:
1栈为空,返回错误
2不能与栈顶匹配,返回错误
3能匹配,用pop删除栈顶元素
代码:
class Solution():
def isValid4(self,s:str):
dic={'(':')','{':'}','[':']','!':'!'}
stack=[]
for i in s:
if i in dic:
stack.append(i)
else:
if not stack:
return False
elif i!=dic[stack.pop()]:
return False
else:
pass
return not stack