其他分享
首页 > 其他分享> > 回文数

回文数

作者:互联网

回文数

一、题目描述

回文数就指如:12321、121等数字,将此类的数字倒着排序后与原数字相等。

点击查看代码
输入: int x = 121;
输出:true;

输入:int = 123;
输出:false;

二、解题思路

1、字符反转

这里就是将字符想办法反转过来,然后与原来的相比较科得出结果。

思考:如何将所给整数反转?

官方所给思路就是将 revertedNum(反转后整数),将x%10作为revertedNum的最后一位,"revertedNum = revertedNum*10 + x%10",然后将x进行调整,x = x/10,这样就可以获取倒数第二位,这样依次类推就可以将整数给反转。

注意:这里不用将全部数字反转,只需要将其一半数字反转即可。如:“1221”只需将后两位反转令“12 == 12”,即可判断是非为回文数。这里会出现奇数情况,如:“12321”,有一个中位数的情况,这是不影响,只需将其中位数一位忽略掉即可。使用returnNumber/10

代码实现:

点击查看代码
public boolean isPalindrome(int x) {
        if(x == 0){
            return true;
        }
        //排除负数和最后一个是零的情况
        if(x%10 == 0 || x <0){
            return false;
        }
        //前半部分
        int returnNumber = 0;
        //后半部分
        int Number2= 0;
        while( x > returnNumber){
            Number2 = x % 10;
            returnNumber = returnNumber*10 + Number2;
            x = x/10;
        }
        //最终判断前半部分是否等于后半部分
        if(x==returnNumber || x == public boolean isPalindrome(int x) {
        if(x == 0){
            return true;
        }
        if(x%10 == 0 || x <0){
            return false;
        }
        

2、转换为字符串

将整数转换为字符串倒序后再与原来字符串比较。Java固有的方法。

点击查看代码
public boolean isPalindrome(int x) {
        String  a = "";
        StringBuffer stringBuff = new StringBuffer(x+"");
        a = stringBuff.reverse().toString();
        if(a.equals(x+"") ){
            return true;
        }else{
            return false;
        }
        
    }

标签:10,return,int,反转,returnNumber,revertedNum,回文
来源: https://www.cnblogs.com/zjjtt/p/16476159.html