【leetcode-7】Reverse Integer(C语言)

来源:互联网 发布:游族网络北京怎么样 编辑:程序博客网 时间:2024/06/04 18:38

转自http://blog.csdn.net/zdavb/article/details/46839165

问题描述:
Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

这道题比较讨厌的地方在于如何判断溢出,好吧,我的方法比较low,因为我只会比较+法的溢出,,但是效果还不错,运行时间是4ms

int reverse(int x) {     bool negative = false;     if(x<0){        negative = true;        x = -x;     }     int nums = 0;     int tmpNum;     int tmp;     int i;     while(x){         tmpNum = nums;         tmp = 0;         for(i = 0;i<10;i++){            tmp = tmp+tmpNum;            if(tmp<tmpNum)                return 0;         }         nums = tmp;         nums=nums+x%10;         x = x/10;     }     if(negative)        return -1*nums;     return nums;}

看了博客之后发现这种判断溢出的方法很不错。改之,但是时间居然会达到8ms。

int reverse(int x) {     bool negative = false;     if(x<0){        negative = true;        x = -x;     }     int nums = 0;     int tmpNum;     int tmp;     int i;     while(x){         if(nums>(INT_MAX-x%10)/10)//成立,则一定会超             return 0;         nums=nums*10+x%10;         x = x/10;     }     if(negative)        return -nums;     return nums;}
0 0
原创粉丝点击