回文数——Java实现

回文数的定义

设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。
注意:
1.偶数个的数字也有回文数124421
2.小数没有回文数
3.负数没有回文数

代码1

public boolean isPalindrome(int x){
        if(x<0) return false;
        String s = String.valueOf(x); //将数字转为为字符串
        for(int i=0;i2;i++){
            if(s.charAt(i)!=s.charAt(s.length()-i-1))
                return false;
        }
        return true;
    }

这是我实现的代码,代码比较简单易懂,这是LeetCode上的一道简单题。
看了大神的代码,非常地巧妙,下面贴上代码。

代码2

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);
}

你们可以可以把数字带进去看看。

你可能感兴趣的:(基础算法,Java)