方法1:数学
时间复杂度:$O(logN)$,N表示这个数字大小,logN是数字的位数。
求位数的方法:
https://blog.csdn.net/m0_58177653/article/details/119182483
空间复杂度:$O(1)$
解题思路
https://leetcode.cn/problems/palindrome-number/solution/hui-wen-shu-by-leetcode-solution/
Java 代码
class Solution {
public boolean isPalindrome(int x) {
//负数或者末位为0,直接排除
if (x < 0 || x % 10 == 0 && x != 0) {
return false;
}
//见图解
int revNum = 0;
while (x > revNum) {
revNum = revNum * 10 + x % 10;
x /= 10;
}
//区分奇偶判断,剪图解
if (x == revNum || x == revNum / 10) {
return true;
}
return false;
}
}