[LeetCode] 7. Reverse Integer

原文:Reverse Integer

描述:符号位不变,反转整数的各个数字(digits)。输入为 32 位有符号整数。如果反转后有整数溢出,则应返回 0。

思路:与反转位操作一样,循环除 10 取余即可。符号位单独计算。考虑到有溢出,所以用 long long 来操作数据。

代码:

class Solution {
public:
    int reverse(int x) {
        long long n = 0;
        long long t = x;
        bool neg = x < 0;
        if(x < 0) t = -t;
        while(t){
            n = n * 10 + t % 10;
            t /= 10;
        }
        if(neg && n - 1 > INT_MAX || !neg && n > INT_MAX)
            return 0;
        else
            return (int)(neg ? -n : n);
    }
};

发表于:2014年10月26日 ,阅读量:526 ,标签:LeetCode

版权声明:若非特别注明,本站所有文章均为作者原创,转载请务必注明原文地址。