一、题目:9. 回文数
二、题目解析:
对于负数来说,显然不能成为回文数,其次,一个数字如果是回文数,那么它反转过来还是等于它自身。
int范围内最大的回文数是2147447412,这里需要注意边界的处理。
三、代码如下:
public boolean isPalindrome(int x){
if(x<0){
return false;
}
int num = x,cur = 0;
while (x!=0){
if(cur>Integer.MAX_VALUE/10 || cur == Integer.MAX_VALUE/10 && (x%10>7)
|| (cur< -Integer.MIN_VALUE/10 || cur == Integer.MIN_VALUE/10 && (x%10>8))){
//溢出则返回false
return false;
}
cur = cur * 10 + x % 10;
x/=10;
}
return cur == num;
}
四、测试:
五、结束