自学内容网 自学内容网

9.回文数

题目:给你一个整数x,如果x是一个回文整数,返回true;否则,返回false。

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

class Solution{
    public boolean isPalindrome(int x){
        //特殊情况;
        //如上所述,当x<0时,x不是回文数
        //同样地,如果数字的最后一位是0,为了使该数字为回文
        //则第一位数字也应该是0
        //只有0满足这一属性
        if(x<0||(x%10==0&&x!=0)){
            return false;                    
        } 
        int revertedNumber=0;
        while(x>revertedNumber){
            revertedNumber=revertedNumber*10+x%10;
            x /=10;        
        }   
        // 当数字长度为奇数时,我们可以通过 revertedNumber/10 去除处于中位的数字。
        // 例如,当输入为 12321 时,在 while 循环的末尾我们可以得到 x = 12,revertedNumber = 123,
        // 由于处于中位的数字不影响回文(它总是与自己相等),所以我们可以简单地将其去除。
        return x==revertedNumber||x==revertedNumber/10;
    }
}


原文地址:https://blog.csdn.net/qq_43714918/article/details/136365206

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!