判断一个数是否是回文数。由于负数有符号,所以所有负数都不是回文数。由于最高位不为0,如果整数x是10的倍数(不为零),则整数x一定不是回文数。
这道题参考第8题将整数反转的方法,将整数x的后半部分反转同x的前半部分比较,如果相同或者后面部分正好是前面部分的10倍时,这个数是回文数,其它则不是回文数。
class Solution {
public boolean isPalindrome(int x) {
if ( x < 0 || ( x % 10 == 0 && x != 0 )) return false;
int rev = 0;
while ( x > rev ){
rev = rev * 10 + x % 10;
x = x / 10;
}
if (x == rev || x == rev / 10) return true;
else return false;
}
}