1. 程式人生 > >【leetcode-7】Reverse Integer(C語言)

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

問題描述:
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; }