【Leetcode】回文数字Palindrome

来源:互联网 发布:vfp sql update 编辑:程序博客网 时间:2024/05/22 01:40

      所谓的回文数字就是诸如123321,12344321之类的数字。题目要求不能有额外的空间,所以转成String就不用想了。

      首先要判断是不是回文数,要考虑几种特殊情况:负数肯定不是,例如10,20,320之类的末尾为0的肯定不是,但是0 是回文数。所以排除了这几种情况之后可以将数X分别除以10和取10的余数res,将余数res*10加上新的余数res,循环直到余数所组成的数>除以10后的X。这时判断x和res是否相等。例如偶回文数12344321此时x和res都是1234所以是回文数,奇回文数例如12321此时x=12,res=123.对res除以10再比较,就可以得到正确的判断结果了。

java实现代码如下:

    public boolean isPalindrome(int x) {        int res = 0;        if(x==0)        return true;        if(x<0||x%10==0)        return false;        else        {        while(x>res)        {        res = res*10+x%10;            x = x/10;            System.out.println(res+" "+x);        }        if(res==x)        return true;        else        {        res = res/10;        if(res ==x)        return true;        else        return false;        }        }    }



阅读全文
0 0