09 Palindrome Number
Determine whether an integer is a palindrome. Do this without extra space.
分析及代码
方法有几种,最蠢的就是我自己用的(微笑.jpg),统计位数,每次掐头去尾比较,完了还要更新x,总之很麻烦
一种是reverse integer然后比较,注意用long,容易溢出
还有一种很棒的方法[/ref],只reverse后一半,比较是否相等,或者只差一位就相等,很容易理解,上代码:
public boolean isPalindrome(int x) {
if(x < 0 || (x != 0 && x % 10 == 0)) {
return false;
}
int reversed = 0;
while(reversed < x) {
reversed = reversed * 10 + x % 10;
x = x / 10;
}
return (reversed == x) || (reversed / 10 == x);
}
注意开始的判断,所有的10,100,1000...都会报错,所以要单独处理