09 Palindrome Number

/9. 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...都会报错,所以要单独处理

results matching ""

    No results matching ""