[LeetCode]9. Palindrome Number判断回文数字

 /*
        查看网上的思路有两种:
        1.每次取两边的数,然后进行比较
        2.取数的倒置数,进行比较
         */
    public boolean isPalindrome1(int x) {
        if (x<0) return false;
        //以四位数为例,取左边的数用的方法是/1000,取右边的数用的是%10
        //注意每次取完两遍要更新数和位数
        int len = 1;
        int temp = x;
        while (temp>=10)
        {
            len*=10;
            temp/=10;
        }
        while (x!=0)
        {
            int left = x/len;
            int right = x%10;
            if (left!=right) return false;
            len/=100;
            //更新x的方法是先取出后几位,再去掉最右边
            //%用来留下后边的,/用来留下前边的
            x = (x%len)/10;
        }
        return true;
    }
    public boolean isPalindrome2(int x)
    {
        if (x<0) return false;
        int a  = 0;
        int b = x;
        while (b!=0)
        {
            a = a*10+b%10;
            b%=10;
        }
        return (a==x);
    }

 

posted @ 2018-02-06 19:47  stAr_1  阅读(169)  评论(0编辑  收藏  举报