计算机技术一锅炖码农的世界

LeetCode-7:Reverse Integer

2016-11-10  本文已影响10人  LeoSpring

第七题: reverse integer

题目概述:

English:Reverse digits of an integer.
中文意思:将一个整型变量倒置,如将123变为321,将-123变为-321.
Example1: x = 123, return 321
Example2: x = -123, return -321


题目求解:

此题的关键不在于算法的设计,倒置相信很多同学都会写,此题关键在于溢出处理,这是很多同学容易忽略的。


题目补充:

此题,没有给出的条件是,判断溢出,如果超过了返回0,有可能有同学因为没有这个判断而无法通过,加入此条件此题就不难写了。


程序代码:
class Solution {
public:
    int reverse(int x) {
        if (x == 0) 
            return 0;

        int max = 0x7fffffff;        //补码表示32位int变量最大值
        int min = 0x80000000;  //补码表示32位int变量最小值
        int sign = -1;
        if (x > 0)
            sign = 1;

        x = abs(x);
        double answer = 0;
        int temp = 0;
        for (; x != 0;)
        {
            temp = x % 10;
            x = x / 10;
            answer = answer * 10 + temp;

        }
        answer = answer * sign;
        if (answer > max || answer < min)
            return 0;
        return answer;
    }
};```

----
>#####Run Time
运行时间:9ms
上一篇 下一篇

猜你喜欢

热点阅读