给你一个整数 x
,如果 x
是一个回文整数,返回 true
;否则,返回 false
。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121
是回文,而 123
不是
来源:力扣(LeetCode)
转为字符串
- 把数字转为字符串
- 反转整个字符串
- 对比两个字符串
function isPalindrome(x: number): boolean {
if(x < 0 || (x % 10 === 0 && x !== 0)){
return false;
}
const tmp:string = x.toString();
let reverseStr = '';
for (let i = tmp.length - 1; i >= 0; i--) {
reverseStr += tmp[i];
}
return tmp === reverseStr;
}
const a = 123;
const b = 12321;
console.log(isPalindrome(a)); // false
console.log(isPalindrome(b)); // true
不转为字符串
- 主要思路是对数字不断的进行取余运算(%10)
- 然后将原数字除以10(/10)
- 原数字<取余后的数字 截至
function isPalindrome(x: number): boolean {
if (x < 0 || (x % 10 === 0 && x !== 0)) {
return false;
}
let reverseNumber = 0;
while (reverseNumber < x) {
const a = x % 10;
reverseNumber = reverseNumber * 10 + (x % 10);
x = Math.floor(x/10)
}
return x === reverseNumber || x === Math.floor(reverseNumber / 10);
}
const a = 123;
const b = 12321;
console.log(isPalindrome(a)); // false
console.log(isPalindrome(b)); // true
标签:10,const,reverseNumber,TS,isPalindrome,力扣,false,回文
From: https://www.cnblogs.com/guojikun/p/17345465.html