「字符串」leetcode 9.判断是否是回文数(简单)

343 阅读2分钟

这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战

一、了解题目

附上原题链接:9. 回文数

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

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。

示例:

输入:x = 121
输出:true

二、题解分析

(1)解题思路

依据以上题意,我们来写下解题思路:

  • 先对 x 值去符号;
  • 定义一个值,存放反转后的数;
  • 递进地对每位数进行反转。

(2)解题步骤

依据以上解题思路,我们来写下解题步骤:

  • 先判断全局下不满足的情况:当 x 小于 0 或者 x10 的倍数时,肯定不满足情况,因为 0 不可能在首位;

  • 定义一个反转数 rev

  • 定义变量 order ,用来存放削减后的数;

  • 判断 order 是否大于 0

  • 判断反转后的数是否等于原来的数,是则说明是回文数

三、代码实现

依据上面的题解,我们将用 js 来实现这道题。具体实现代码如下:

/**
 * @param {number} x
 * @return {boolean}
 */
let isPalindrome = function(x){
    // 1.当x小于0或者x是10的倍数时肯定不满足条件,因为0不可能在首位
    if(x < 0 || (x % 10 === 0 && x !== 0)){
        return false;
    }
​
    // 2.定义一个反转数
    let rev = 0;
    // 3.定义变量order,用来存放削减后的数
    let order = x;
    // 4.判断条件:order是否大于0
    while(order > 0){
        // 4.1 存放反转数
        rev = rev*10 + order%10;
        // 4.2 存放削减后的数
        order = Math.floor(order/10);
    }
    // 5.判断反转后的数是否等于原来的数,是则说明是回文数
    if(rev === x){
        return true;
    }else{
        return false;
    }
​
}
console.log(isPalindrome(121)); // true

以上就是关于判断是否是回文数的题解,不知道对小伙伴们是否有帮助呢?

我们下期见👋👋👋