回文数

177 阅读1分钟

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。

  1. 所有的负数都不是回文数
  2. 整数反转后,和原数比较,如果相同就是回文,可能会出现溢出问题。
  3. 反转一半的整数就不会出现溢出了, 拿一半反转的数和原数的另一半比较, 如果相同, 就是回文数。
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