我正在尝试创建一个递归函数来识别python中的回文
到目前为止,我已经编写了以下代码:我正在尝试创建一个递归函数来识别python中的回文,python,function,recursion,palindrome,Python,Function,Recursion,Palindrome,到目前为止,我已经编写了以下代码: def palindrome(s): if len(s) == 0: return False elif len(s) == 1: return True elif len(s) > 1: if s[0] == s[-1]: return palindrome(s[1:-1]) else: return False 当
def palindrome(s):
if len(s) == 0:
return False
elif len(s) == 1:
return True
elif len(s) > 1:
if s[0] == s[-1]:
return palindrome(s[1:-1])
else:
return False
当回文中的字母数为奇数时(如racecar),回文有效;但当回文中的字母数为偶数时(如daad),回文返回False
有人能帮我识别代码中的错误吗?当字符串为空时,它是一个回文,您需要
daad
"daad" => d==d && "aa" => a==a && ""
因此,如果len(s)
if len(s)==0,则前两个条件可以合并:返回False是问题所在。在这种情况下,需要使用空字符串返回True。想想像“aa”这样的两个字符的字符串会发生什么。对于那些喜欢一行的人来说,这只是一个小提示,实际上可以将函数缩短为:def palindrome(s):return len(s)
def palindrome(s):
if len(s) <= 1:
return True
if s[0] == s[-1]:
return palindrome(s[1:-1])
return False
def palindrome(s):
return len(s) <= 1 or s[0] == s[-1] and palindrome(s[1:-1])