#deep是递归深度控制标识,不用改。
def check(s,deep=0):
#定义一个左括号游标i
i = 0
while True:
#首先检测有没有左括号
if s[i] in ['{','[','(','<']:
#记录左括号的类型left
left = s[i]
#再新定义一个右括号的游标j
j = i + 1
while True:
#当检测到左括号后紧接着检测右括号
if s[j] in ['}',']',')','>']:
right = s[j]
#如果右括号也检测到,则检测两个括号是否匹配
if left+right == '()' or left+right == '[]' or left+right == '{}':
#确定匹配后再判断当前递归深度,不是在最外层返回当前的层级长度。
if deep > 0:
return j
#在最外层,把左括号游标定位到当前位置,从当前位置往后再继续检测
i = j
#右括已经找到,退出重新检测左括号
break
else:
#如果左右两括号不匹配则返回False
return False
#没有找到右括号反而找到了左括号,则进入递归。
elif s[j] in ['{','[','(','