You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

46 lines
738 B

/**
* @param {number} x
* @return {boolean}
*/
var isPalindrome = function(x) {
if (x < 0 || x === null){
return false;
}
let s = x.toString(10);
if (s.length % 2 === 0){
return validPalindrome(s, true);
} else {
return validPalindrome(s, false);
}
};
function validPalindrome(s, even){
let valid = false;
//Start as same char for odd lengths
let i = Math.floor(s.length / 2);
let j = i;
//Middle is between chars for even lengths
if (even){
//Start i to the left of j
--i;
}
while(i >= 0 && j < s.length){
if (s.charAt(i) === s.charAt(j)){
valid = true;
--i;
++j;
} else {
valid = false;
break;
}
}
return valid;
}