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

112 阅读1分钟

1、字符串反转法

function isPalindrome(x) { 
    // 1. x < 0 的数字一定不是回文数,因为 -121 不等于 121- 
    // 2. 个位数是 0 的数字也一定不是回文数,0 除外 
    if (x < 0 || (x % 10 === 0 && x !== 0)) { return false; } 
    let s = String(x), rs = ''; 
    for (let i = s.length - 1; i >= 0; i--) { 
        rs += s[i]; } return s === rs; 
       } 

2、拿前一半数与后一半数进行对比

function isPalindrome(x) { 
    // 1. x < 0 的数字一定不是回文数,因为 -121 不等于 121- 
    // 2. 个位数是 0 的数字也一定不是回文数,0 除外 
    if (x < 0 || (x % 10 === 0 && x !== 0)) { return false; } 
    let reversedNumber = 0; 
    while (x > reversedNumber) { 
        //如何拿到后一半数:
        reversedNumber = reversedNumber * 10 + (x % 10); 
        x = Math.floor(x / 10); } 
        return x === revertedNumber || x === Math.floor(revertedNumber / 10); }