You need to enable JavaScript to run this app. 为何我编写的递归回文判断函数在所有场景下都返回True?
优惠活动
大模型
产品
解决方案
定价
更多

为何我编写的递归回文判断函数在所有场景下都返回True?

问题原因分析
  • 核心错误出现在递归终止条件的判断逻辑上:你写的if len(inputString)==0 or 1: 不符合Python的语法逻辑,该表达式实际会被解析为 (len(inputString) == 0) or 1,而整数1在布尔判断中永远为True,因此无论输入字符串长度是多少,第一个if判断永远成立,直接返回True,自然不会走后续的判断逻辑。
  • 你原本的预期是判断字符串长度为0或者为1时返回True,正确的写法应该是if len(inputString) == 0 or len(inputString) == 1:,也可以简化为if len(inputString) <= 1:。
修正后的代码
def isPalindrome(inputString):
    if len(inputString) <= 1:
        return True
    elif inputString[0] == inputString[-1]:
        return isPalindrome(inputString[1:-1])
    else:
        return False

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 09:36:02