LeetCode-9.回文数

68 阅读1分钟

9. 回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

  • 例如,121 是回文,而 123 不是。

 

示例 1:

输入: x = 121
输出: true

示例 2:

输入: x = -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例 3:

输入: x = 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。

 

提示:

  • -231 <= x <= 231 - 1

 

进阶: 你能不将整数转为字符串来解决这个问题吗?

通过字符串反转判断

/**
 * @param {number} x
 * @return {boolean}
 */
var isPalindrome = function(x) {
    // 通过字符串判断
    if(x.toString() === x.toString().split('').reverse().join('')){
        return true;
    }
    return false;
};

进阶: 你能不将整数转为字符串来解决这个问题吗?

模除方式实现整数反转

/**
 * @param {number} x
 * @return {boolean}
 */
var isPalindrome = function(x) {
    // 排除负数
    if (x < 0) {
        return false;
    }
    // 数字反转,也可以通过模除
    let n = x;
    let r = 0;
    let t = 0;
    while (n !== 0) {
       t = n % 10;
       r = t + r*10;
       n = parseInt(n /10);
    }
    if(x === r) {
        return true;
    }
    return false;
};