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

为什么Python3回文数判断代码在LeetCode返回true本地却返回false?

运行结果差异原因

核心原因是返回值类型不符合LeetCode判题规则,两段代码逻辑本身没有差异,是返回值的判定场景不同导致结果表现不一致:

  • 首先看函数的类型标注:你LeetCode代码的isPalindrome方法标注返回类型为bool(布尔值),但你实际返回的是字符串类型的'true'和'false'。
  • LeetCode判题逻辑:判题程序会将你的返回值作为布尔值判断,Python中所有非空字符串的布尔求值结果都是True,不管字符串内容是'true'还是'false'。所以不管输入是否为回文,判题器都会认为你返回了真值,才会出现输入-121也返回true的错误结果。
  • 本地运行的表现差异:你本地测试时直接打印函数返回的字符串,输入-121时函数返回字符串'false',控制台直接输出该字符串,让你误以为返回了布尔假,和LeetCode的判定结果产生了差异。
修复方案

把返回值改为布尔类型的True和False即可,修改后代码如下:

class Solution:
    def isPalindrome(self, x: int) -> bool:
        x = str(x)
        xrev = x[::-1]
        return x == xrev

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:42:02