classSolution:defisValid(self, s:str)->bool:iflen(s)%2==1:returnFalsewhileTrue:
startLen =len(s)
s = s.replace('[]','')
s = s.replace('{}','')
s = s.replace('()','')# 替换后和替换前长度相同 要么没有括号对 要么是空字符串iflen(s)== startLen:return s ==''
利用栈 时间复杂度 O(N)
classSolution:defisValid(self, s:str)->bool:iflen(s)%2==1:returnFalse# 加一个 ? 来规避栈为空的情况
dic ={'(':')','[':']','{':'}','?':'?'}
stack =['?']for char in s:if char in dic:
stack.append(char)elif dic[stack.pop()]!= char:returnFalsereturnlen(stack)==1