括号匹配问题
思路
- 把输入字符串转化为只含有(,),[,],{,}的字符串;
- 遍历新的字符串,将字符串中的(),[],{} replace为 ’ ‘(空字符),直到字符串中不再含有(),[],{}。
- 判断剩余的字符串是否为空,若为空,则匹配。
代码
def isValid(s):
l = ['{','}','[',']','(',')']
res = []
for i in s:
if i in l:
res.append(i)
resStr = ''.join(res)
while '()' in resStr or '{}' in resStr or '[]' in resStr:
resStr = resStr.replace('()','').replace('{}','').replace('[]','')
if resStr == '':
return True
return False