LeetCode回文数判断JS代码本地通过但平台测试未通过问题
回文数判断代码LeetCode提交失败的解决方案
你的回文数判断代码在本地测试时能输出符合预期的文本,但提交到LeetCode后测试不通过,核心原因是返回值类型不符合题目要求:
题目明确要求返回布尔类型的true或false,但你的代码返回的是字符串类型的"true"和"false",LeetCode的测试用例会严格校验返回值类型,因此导致提交失败。
代码中的错误点:
- 负数判断分支:
return "false";返回字符串而非布尔值 - 正数逻辑分支:
return "true"、return "false"同样返回的是字符串类型
修正后的代码:
/** * @param {number} x * @return {boolean} */ var isPalindrome = function(x) { if (Math.sign(x) === -1) { return false; } else { let y = x.toString(); // 转换为字符串 let reversedStr = y.split('').reverse().join(''); // 反转字符串 let revX = parseInt(reversedStr); return x === revX; } };
更简洁的优化版本:
不需要将反转后的字符串转回数字,直接比较原字符串和反转后的字符串即可,逻辑更清晰:
/** * @param {number} x * @return {boolean} */ var isPalindrome = function(x) { if (x < 0) return false; const str = x.toString(); return str === str.split('').reverse().join(''); };
内容的提问来源于stack exchange,提问作者mostafa ali Nafady
相关产品推荐
相关产品推荐

