Palindrome Number
Problem Description
Given an integer x, return true if x is a palindrome, and false otherwise.
Example 1:
Input: x = 121 Output: true Explanation: 121 reads as 121 from left to right and from right to left.
Example 2:
Input: x = -121 Output: false Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
Example 3:
Input: x = 10 Output: false Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
Constraints:
-231 <= x <= 231 - 1
Follow up: Could you solve it without converting the integer to a string?
Solution (JavaScript)
/**
* @param {number} x
* @return {boolean}
*/
var isPalindrome = function(x) {
// solution 1
// let a = x.toString().split('');
// return a.slice(0, Math.ceil(a.length/2)).join('')
// == a.slice(a.length - Math.ceil(a.length/2), a.length).reverse().join('');
let str = x.toString();
function isPal(s) {
if([0, 1].includes(s.length))
return true;
if(s.slice(0,1) != s.slice(s.length-1, s.length))
return false;
return isPal(s.slice(1,s.length-1));
}
return isPal(str);
};