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

LeetCode回文数JavaScript解法运行输出false排查求助

LeetCode 回文数题解代码问题排查

核心错误原因

  • JavaScript 中 / 运算符默认返回浮点数,没有做整数截断处理。比如 121 / 10 得到的是 12.1 而非整数 12,循环过程中x会一直是大于0的小数,不仅反转计算结果错误,甚至可能出现死循环。
  • 没有处理边界场景:负数、末尾为0的非0数字,这两类数字天生不可能是回文数,无需进入反转逻辑。

修复后的代码

/**
 * @param {number} x
 * @return {boolean}
 */
var isPalindrome = function(x) {
    // 提前排除不可能为回文数的场景
    if (x < 0 || (x % 10 === 0 && x !== 0)) {
        return false;
    }
    var y = x, num = 0, rem;
    while(x > 0) {
        rem = x % 10;
        num = num * 10 + rem;
        // 对除法结果做整数截断,保证x每次循环都是整数
        x = Math.floor(x / 10);
    }
    return num === y;
};

验证说明

输入x=121时,反转计算过程为:

  1. 第一次循环:rem=1,num=1,x=12
  2. 第二次循环:rem=2,num=12,x=1
  3. 第三次循环:rem=1,num=121,x=0
    循环结束,num===y返回true,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:24:08