class Solution:
def isValid(self, s):
p=[
(s.count("(")+s.count(")"))%2!=0,
(s.count("[")+s.count("]"))%2!=0,
(s.count("{")+s.count("}"))%2!=0,
]
if p[0] or p[1] or p[2]:
return False
replace=[
["()",""],
["[]",""],
["{}",""],
]
while True:
for rep in replace:
s=s.replace(rep[0],rep[1])
if not (("()" in s) or ("[]" in s) or ("{}" in s)):
break
if len(s):
return False
else:
return True
解题思路:
首先判断每种括号的字符数量是否为偶数(也就是看是否有完整的括号)
如果为否,则返回False
如果为是,则执行下面的代码
把中间没有其它字符的括号依次删除
删完后如果s中还有字符就返回False
如果没有字符了,就返回True
关注我,在Leetcode专栏中查看更多题目的解题思路吧!