LeetCode #9 Easy
题目描述
给你一个整数 x,如果 x 是一个回文整数,返回 true;否则,返回 false。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例
输入:x = 121
输出:true
输入:x = -121
输出:false
解释:从左向右读, 为 -121 。从右向左读, 为 121- 。因此它不是一个回文数。
输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。
我的解题过程
负数不可能是回文数,直接返回 false。
题目要求不将整数转换成字符串,因此采用“整数反转”的思路:将 x 反转得到 res,最后比较 res 与原值是否相等。
function isPalindrome(x: number): boolean {
if (x < 0) return false;
const deepX = x;
let res = 0;
while (x > 0) {
res = res * 10 + (x % 10);
x = Math.floor(x / 10);
}
return res === deepX;
}