Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我正在尝试创建一个递归函数来识别python中的回文_Python_Function_Recursion_Palindrome - Fatal编程技术网

我正在尝试创建一个递归函数来识别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])