给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
- 所有的负数都不是回文数
- 整数反转后,和原数比较,如果相同就是回文,可能会出现溢出问题。
- 反转一半的整数就不会出现溢出了, 拿一半反转的数和原数的另一半比较, 如果相同, 就是回文数。
function isPalindrome(x) {
if (x < 10) {
return false;
}
let revertedNumber = 0;
while (x > revertedNumber) {
revertedNumber = revertedNumber * 10 + x % 10;
x = x / 10 | 0;
}
return x === revertedNumber || x === (revertedNumber / 10 | 0)
}
isPalindrome(1221) //true
isPalindrome(1123) //false