public boolean isPalindrome2(int x){
//负数和个位是0的数首先排除
if(x<0||(x%10==0&&x!=0)){
return false;
}
//反转一半对比(为什么反转一半?因为如果反转后的数大于int的最大容纳范围,就会溢出)
int reverse = 0;
while(reverse<x){
reverse=x%10+reverse*10;
x/=10;
}
return x==reverse||x==reverse/10;
}
时间复杂度:O(logn)
空间复杂度:O(1)