LeetCode javascript回文程序完成,但仍然得到错误的输出


/**
* @param {number} x
* @return {boolean}
*/
var isPalindrome = function(x) {
var y=x,num=0,rem;
while(x>0)
{
rem=x%10;
num=(num*10)+rem;
x=x/10;
}
if(num==y)
return true;
else
return false ;
};

我仍然得到错误的输出为假,但我的逻辑是正确的。这是一个leetcode回文问题,我正在用javascript逻辑尝试它是正确的,但仍然无法弄清楚。

只有一个问题:

在JavaScript中,数字默认为浮点数字,因此/执行浮点除法。你需要截断:

x = Math.floor(x / 10);

关于你的代码的备注:

构造体if (boolean) return true; else false是一种反模式。由于boolean已经代表了您想要返回的值,所以您应该只返回它

return num == y;

您的逻辑看起来不错,但执行过程中出现了一些小错误。请使用以下片段,它应该可以工作:

var isPalindrome = function(x) {
if (x < 0) {
return false;
}
// Store the number in a variable
let number = x;
// This will store the reverse of the number
let reverse = 0;
while (number > 0) {
reverse = reverse * 10 + number % 10;
number = parseInt(number / 10);
}
return x === reverse;
}

最新更新