python - 如何使用递归来使用 Python 查找回文?

标签 python recursion palindrome

我刚刚开始探索编程的奇妙之处。我正在尝试编写代码来识别数字回文。只看数字而不是文本。我正在尝试在这里学习使用递归。但我只是没有得到任何地方,我无法弄清楚它有什么问题。

我的想法是检查第一个字符串和最后一个字符串,如果匹配则删除这两个字符串,然后重复。最终什么都没有(暗示它是一个回文)或者会有一对不匹配(暗示相反)。

我知道有更好的代码可以在其中找到回文,但我只是想尝试一下递归。

那怎么了?

def f(n):
    global li   
    li=list(str(n))
    if (len(li)==(1 or 0)):
        return True
    elif li[len(li)-1]==li[0]:
        del li[0]
        del li[len(li)-1]
        if len(li)==0:
            return True
        if len(li)>0:
            global x
            x=''.join(li)
            str(x)
            f(x)
    else:
      return False

提前致谢!

最佳答案

一些评论

  • 为什么 xli 是全局的?在递归中,所有变量都应该是局部的。
  • 为什么要在 strlist 之间来回转换?可以下标both of them
  • 您需要返回递归调用的结果:return f(x)

尝试这些建议,看看效果如何。

关于python - 如何使用递归来使用 Python 查找回文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5495734/

相关文章:

python - Python 中的非二叉树数据结构

c++ - 检查堆栈是否是回文

python - 下一个更高的素数和回文数

algorithm - 在不同级别实现递归和循环

c - 使用递归函数编写数学程序

java - 递归函数返回错误返回false

haskell - 忽略非字母数字字符和大小写的回文检查器 Haskell

Python - 如何获取发送方套接字的端口(UDP)

python - 迭代列表并在比较后删除元素

python - 如何用另一个表的内容替换整个表的内容