feat: 回文数(9)

This commit is contained in:
= 2024-06-01 10:25:16 +08:00
parent 01e8244864
commit e7d27d936d

View File

@ -0,0 +1,60 @@
/*
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}
*/
const isPalindrome = function (x) {
if (x < 0 || (x % 10 === 0 && x !== 0)) return false;
let revertedNumber = 0;
while (x > revertedNumber) {
revertedNumber = revertedNumber * 10 + x % 10;
x = Math.floor(x / 10);
}
// 当数字为奇数位时revertedNumber会大于x只要/10之后任然相等那么就是回问数
return revertedNumber === x || Math.floor(revertedNumber / 10) === x;
};
console.log(isPalindrome(1221));