将一个数完全反转后再比较可能会溢出,所以其实只要把后半部分反转即可,很容易得到数字后面的数字,怎么判断转换一半了,当原始数字小于反转数时就说明转换一半了。但要注意的是可能是奇数位数的数字,所以判断的时候判断revx 和rev/10x。
需要在开始判断特殊情况,如果x为0则返回true,如果x<0或者最后一位为0则返回false
class Solution {
public boolean isPalindrome(int x) {
if(x==0) return true;
if(x<0 || x%10==0)return false;
int rev=0;
while(x>rev){
int t=x%10;
x=x/10;
rev=rev*10+t;
}
return rev==x || rev/10==x;
}
}