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

LeetCode JavaScript回文数判断代码返回错误结果求助

JavaScript回文数判断代码错误修复

问题根因

代码核心错误出在字符串反转步骤的拆分逻辑:

  • 错误代码中使用split(' ')对数字转成的字符串做拆分,split(' ')的作用是按空格作为分隔符切割字符串
  • 数字转字符串后不存在空格字符,因此切割后得到的是长度为1的数组,数组元素就是原字符串本身,后续执行reverse()、join('')后得到的内容和原字符串完全一致,导致所有非负数都会被误判为回文数,这就是输入20这类非回文数也返回true的原因。

修复方案

将split(' ')的参数从空格改为空字符串'',即可按单个字符切割字符串,反转后得到正确的倒序字符串。
额外优化点:可以把负数判断的逻辑提前,减少不必要的字符串转换操作,不影响结果但执行效率更高。

修复后完整代码

var isPalindrome = function(x) {
    // 负数直接返回false,提前判断减少后续计算
    if(x < 0 ) return false;
    let xToString = x.toString();
    // 传入空字符串split才会拆分为单字符数组
    let reversed = xToString.split('').reverse().join('');
    return xToString === reversed;
};

验证说明

  • 输入回文数比如121、1221时,反转后字符串和原字符串一致,正确返回true
  • 输入非回文数比如20、123时,反转后字符串为'02'、'321',和原字符串不相等,正确返回false
  • 输入负数比如-121时,提前判断直接返回false,符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:21:12