Python中的递归函数回文

2024-04-26 06:35:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要帮助写一个递归函数来检测字符串是否是回文。但是我不能使用任何循环,它必须是递归的。有人能告诉我这是怎么做的吗。我在用Python。


Tags: 字符串
3条回答

如果一个字符串是零或一个字母长,它就是回文。

如果一个字符串的第一个和最后一个字母相同,而其余的字母(我认为它是Python中的一个[1: -1]片段,但我的Python有点生锈)是一个回文,那么它就是一个回文。

现在,把它写成一个带字符串的回文函数。它会自称。

def ispalindrome(word):
    if len(word) < 2: return True
    if word[0] != word[-1]: return False
    return ispalindrome(word[1:-1])

这是最好的班轮

def ispalindrome(word):
    return word == word[::-1]

从一般算法的角度来看,递归函数有三种情况:

1)剩下0项。按标识,项是palindrome

2)剩下1项。按标识,项是palindrome

3)2项或更多。删除第一项和最后一项。比较一下。如果它们相同,则在字符串的左边调用函数。如果first和last不相同,则item不是palindrome

函数本身的实现留给读者作为练习:)

相关问题 更多 >