You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python递归回文判断函数返回True失效问题咨询

递归回文判断函数逻辑问题说明

问题核心原因

你的函数在首尾字符相等的elif分支没有显式返回递归调用的结果。Python中所有函数如果执行结束没有命中return语句,会默认返回None,这就是传入回文字符串时没有正确返回值的原因。

错误执行流程示例(以palindrome('level')为例)

  • 第一层调用:len('level')=5>1,首尾字符l相等,执行palindrome('eve'),但没有返回该调用的结果,当前层直接默认返回None
  • 第二层调用palindrome('eve'):len=3>1,首尾e相等,执行palindrome('v'),同样没有返回结果,当前层默认返回None
  • 第三层调用palindrome('v'):命中len<=1的分支返回True,但这个结果只会传递到第二层的调用位置,不会继续向外层传递,最终外层拿到的就是第一层默认返回的None

修复后的代码

def palindrome(string):
    if len(string) <= 1:
        return True
    elif string[0] == string[-1]:
        # 新增return,把递归调用的结果逐层向外返回
        return palindrome(string[1:-1])
    else:
        return False

修复后调用palindrome('level')会正确返回True,非回文字符串的判断逻辑也不受影响。

内容的提问来源于stack exchange,提问作者Yassine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 00:21:03