Python中的递归回文函数

10 投票
10 回答
113596 浏览
提问于 2025-04-15 12:02

我需要帮助写一个递归函数,用来判断一个字符串是否是回文。但是我不能使用任何循环,必须是递归的。有没有人能帮我展示一下怎么做?我在用Python。

10 个回答

3

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

如果一个字符串的第一个字母和最后一个字母相同,并且中间的字母(我觉得在Python中可以用[1: -1]这个切片来表示,不过我对Python有点生疏)也是一个回文,那这个字符串就是回文。

现在,写一个回文函数,它可以接收一个字符串,并且这个函数会自己调用自己。

47

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

1) 没有剩下的项目。这个项目是一个回文,因为它本身就是。

2) 剩下一个项目。这个项目也是一个回文,因为它本身就是。

3) 剩下两个或更多项目。先去掉第一个和最后一个项目,然后进行比较。如果它们相同,就对剩下的字符串再调用这个函数。如果第一个和最后一个不相同,那这个项目就不是一个回文

函数的具体实现留给读者自己去练习哦 :)

69
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]

这里有一个最棒的一行代码

撰写回答