首先处理特殊情况,所有的负数不可能为回文数,个位数为0的数不可能是回文数。
对于一个数字,可以仅考虑后边一半数字就可。像1221,只用考虑21.
题解
class Solution {
public boolean isPalindrome(int x) {
if(x<0 || (x%10 == 0 && x!=0)){
return false;
}
int reverseNum = 0;
while(x > reverseNum){
reverseNum = reverseNum*10 + x%10;
x = x/10;
}
//前者是x为偶数的情况 后者是x为奇数的情况
return x == reverseNum || x == reverseNum/10;
}
}