题目分析:
我们可以通过反转后一半的数与前一半的比较。有两种情况,第一种是当数的长度是偶数时,直接跟后半部分比较;第二种是长度为奇数时,将后半部分的最后一位去除,最后一位与比较无关,因为最后一个数自己就是自己。
代码实现:
class Solution {
public boolean isPalindrome(int x) {
if(x < 0 || x % 10 == 0 && x != 0){
return false;
}
int reversed = 0;
while(x > reversed){
reversed = reversed * 10 + x % 10;
x /= 10;
}
return x == reversed || x == reversed / 10;
}
}