- 题目:判断一个integer类型的数是否为回文
- 难度:Easy
- 思路:分情况进行分析:负数、0、以0结尾的非0整数、其他,具体思路在代码里有写
- 代码:
public class Solution {
public boolean isPalindrome(int x) {
//负数不是回文
if(x < 0){
return false;
}
//x不是0但是以0作为最低位
if(x != 0 && x%10 == 0){
return false;
}
//0本身是回文
if(x == 0){
return true;
}
//其他情况:因为判断是否为回文,所以不需要全部求逆序,求其中一半就行 即 rev小于x
int rev = 0;
while(rev < x){
rev = rev*10 + x%10;
x = x/10;
}
//x为奇数位需要判断x是否等于rev/10,x为偶数位需要判断x是否等于rev
if(x == rev || x == rev/10){
return true;
}else{
return false;
}
}
}