leetcode 7 Reverse Integer(水题)

so easy,注意一下输入不爆int但是反转以后可能爆int。

class Solution {
public:
    int gao(int w){
        if(w==0) return 1;
        else{
            int ans=1;
            while(w--){
                ans*=10;
            }
            return ans;
        }
    }
    int reverse(int x) {
        vector<int>v;
        if(x>=0){
            int t=x;
            while(t>0){
                v.push_back(t%10);
                t/=10;
            }
            long long int ans=0;
            int siz=v.size();
            int st=siz-1;
            for(int i=0;i<siz;i++){
                ans+=(long long int)v[i]*gao(st);
                st--;
            }
            if(ans<2147483648)
            return (int)ans;
            else return 0;
        }
        else{
            x=-x;
            int t=x;
            while(t>0){
                v.push_back(t%10);
                t/=10;
            }
            long long int ans=0;
            int siz=v.size();
            int st=siz-1;
            for(int i=0;i<siz;i++){
                ans+=(long long int)v[i]*gao(st);
                st--;
            }
            if(ans<=2147483648)
            return (int)-ans;
            else return 0;
        }
    }
};

 

posted @ 2015-10-17 20:06  周洋  阅读(158)  评论(0编辑  收藏  举报