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

如何修复递归实现的回文判断函数返回None的问题?

修复回文判断函数返回None的问题

你的回文判断函数存在逻辑漏洞:当字符串首尾字符不相等时,函数没有定义返回值,Python会默认返回None。哪怕测试回文字符串时可能得到正确结果,但只要输入非回文字符串,就会出现返回None的情况。

修复方案很简单,在函数末尾添加一个明确的返回值,处理首尾字符不匹配的场景:

def palindrome(string):
    if len(string) <= 1:
        return True
    if string[0] == string[-1]:
        return palindrome(string[1:-1])
    # 首尾字符不相等时,直接判定不是回文
    return False

修复逻辑说明

  • 当字符串长度小于等于1时,直接返回True(已经是回文或空串)
  • 若首尾字符相等,递归验证去掉首尾后的子串
  • 若首尾字符不相等,直接返回False,明确告知不是回文

这样修改后,无论输入是否为回文字符串,函数都会返回明确的布尔值,不会再出现None的情况。测试palindrome('kjhhjk')会返回True,测试palindrome('abc')会返回False。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 02:59:56