leetcode 9 Palindrome Number

不能用转换成字符串的方式,那样不符合空间要求。

就x按从小到大的位构造一个新的数a,看看等不等x就好了。

class Solution {
public:
    int ci(int ll){
        int m=1;
        while(ll--){
            m*=10;
        }
        return m;
    }
    bool isPalindrome(int x) {
        if(x<0) return false;
        int t=x;
        int len=0,a=0;
        while(t>0){
            len++;
            t/=10;
        }
        t=x;
        len--;
        while(t>0){
            a+=ci(len)*(t%10);
            t/=10;
            len--;
        }
        return x==a?1:0;
    }
};

 

posted @ 2015-10-26 20:11  周洋  阅读(135)  评论(0编辑  收藏  举报