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

LeetCode回文数问题输入10错误返回true的代码逻辑排查

代码逻辑错误分析

核心bug位置

你代码第一个条件分支的逻辑完全写反,是导致测试用例10返回true的直接原因:

if (x <= 9) { 
    //negative numbers are not palindromes
    if (x < 0)  {
       return false;
    } 
}
else {
    return true;
}

这段代码的执行逻辑是:

  • 所有大于9的整数,都会直接走else分支返回true,后续的「末位为0判断」「反转半位判断」逻辑完全不会执行
  • 测试用例x=10满足x>9,所以直接返回true,和你的预期相悖

正确分支逻辑

你原本想实现的是「0~9的正整数都是回文数,直接返回true;负数直接返回false」,对应修正后的分支代码为:

if (x <= 9) { 
    // 负数不是回文数
    if (x < 0)  {
       return false;
    } 
    // 0~9的正整数均为回文数,直接返回
    return true;
}
// 大于9的数继续执行后续判断,不要直接返回

修正后验证

修改后测试x=10的执行流程:

  1. 10>9,不进入第一个分支
  2. 执行x % 10 ==0判断,10%10=0,直接返回false,符合预期
  3. 其他测试用例如121也会正常进入后续反转逻辑,判定结果不受影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:06:02