码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 7. Reverse Integer

时间:2016-12-04 23:06:28      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:nbsp   没有   etc   pre   while   计算   turn   ret   bsp   

https://leetcode.com/problems/reverse-integer/

这题比较麻烦的地方在对溢出的判断,一开始用了long long int来判断有没有溢出,不过太慢了。

后来又改用计算最大int范围,然后除以当前数字,如果小于10则在下一步*=10操作后则会溢出。

然而太慢了,直接和最大值/10的值进行比较,如果大于直接搞掉。不过有个坑,-2147483648的负数还是2147483648,特判了一下,感觉应该是有不用特判的算法。

class Solution {
public:
    int reverse(int x) {
        int num=0,f=0;
        int bit=2147483647;
        if(x<0)
        {
            x=-x,f=1;
            if(x==-x)
                return 0;
        }
        while(x)
        {
            if(num>214748364)
                return 0;
            num*=10;
            num+=x%10;
            x/=10;
        }
        if(f)
            num=-num;
        return num;
    }
};

 

LeetCode 7. Reverse Integer

标签:nbsp   没有   etc   pre   while   计算   turn   ret   bsp   

原文地址:http://www.cnblogs.com/LukeStepByStep/p/6132154.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!