Determine whether an integer is a palindrome. Do this without extra space.
判斷一個正整數(shù)是不是回文數(shù)。
回文數(shù)的定義是,將這個數(shù)反轉(zhuǎn)之后福侈,得到的數(shù)仍然是同一個數(shù)。
分析
最常規(guī)的思路是直接將數(shù)反轉(zhuǎn)再對比啡浊,但實際上,我們只需要反轉(zhuǎn)后半部分跟前半部分對比就可以了路狮。兩種情況虫啥,一是位數(shù)為偶數(shù)蔚约,直接對比奄妨,位數(shù)為奇數(shù),大數(shù)除以10對比苹祟。
代碼
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;
}
return (x ==rev || x==rev/10);
}