括号匹配:给定字符串,输出括号是否匹配,例如,”()” yes;”)(“ no;”(abcd(e)” no;”(a)(b)” yes。要求必须用递归写,整个实现不可以出现一个循环语句。
遇到’(‘,count++,遇到’)’,count–,递归过程中,如果count<0,则括号不匹配
#coding: utf-8
def dfs(string, count):
if count < 0:
return False
if len(string) == 1:
if string == '(':
return False
elif string == ')':
count = count - 1
if count == 0:
return True
else:
return False
else:
if string[0] == '(':
count = count + 1
elif string[0] == ')':
count = count - 1
string = string[1:len(string)]
return dfs(string, count)
if __name__ == '__main__':
print dfs('(a)(b))11()(a)(b)1', 0)