这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战
一、了解题目
附上原题链接:9. 回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
示例:
输入:x = 121
输出:true
二、题解分析
(1)解题思路
依据以上题意,我们来写下解题思路:
- 先对
x值去符号; - 定义一个值,存放反转后的数;
- 递进地对每位数进行反转。
(2)解题步骤
依据以上解题思路,我们来写下解题步骤:
-
先判断全局下不满足的情况:当
x小于0或者x是10的倍数时,肯定不满足情况,因为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
以上就是关于判断是否是回文数的题解,不知道对小伙伴们是否有帮助呢?
我们下期见👋👋👋