
class Solution:
def isValid(self, s: str) -> bool:
if len(s) % 2 == 1:
return False
while True:
startLen = len(s)
s = s.replace('[]','')
s = s.replace('{}','')
s = s.replace('()','')
# 替换后和替换前长度相同 要么没有括号对 要么是空字符串
if len(s) == startLen:
return s == ''
利用栈 时间复杂度 O(N)
class Solution:
def isValid(self, s: str) -> bool:
if len(s) % 2 == 1:
return False
# 加一个 ? 来规避栈为空的情况
dic = {'(':')', '[':']', '{':'}', '?':'?'}
stack = ['?']
for char in s:
if char in dic:
stack.append(char)
elif dic[stack.pop()] != char:
return False
return len(stack) == 1
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)