Determine whether an integer is a palindrome. Do this without extra space.
虽是一道easy题,却是一道integer操作的题目,generic way 要理解。
compare half of the digits in x, so don't need to deal with overflow.
public boolean isPalindrome(int x) {
if (x<0 || (x!=0 && x%10==0)) return false;
int rev = 0;
while (x>rev){
rev = rev*10 + x%10;
x = x/10;
}
return (x==rev || x==rev/10);
}
完整的比较:
public boolean isPalindrome(int x) {
int tem = x;
if (x < 0 || x != 0 && x % 10 == 0) return false;
int rev = 0;
while (x > 0) {
rev = rev * 10 + x % 10;
x /= 10;
}
return rev == tem;
}