Leetcode: Reverse Integer

class Solution {
public:
    int reverse(int x) {
        int flag = 1;
        long long x1 = x;
        if(x1 < 0) {
            flag = -1;
            x1 = 0-x1;
        }
        int remaind;
        long long result=0;

        while(x1){
            remaind = x1%10;
            x1 = x1 /10;
            result = result*10 + remaind ;
        }
        if(flag > 0 && result > 2147483647) return 0;
        if(flag<0 && result > 2147483648) return 0;
        return flag < 0? -result:result;
    }
};

  这道题的点我觉得主要是在于如果使用int型保存结果,当取到最小值-2147483648时,-X会溢出

注意溢出问题

posted @ 2015-03-16 20:04  sunalive  Views(126)  Comments(0)    收藏  举报