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

原创 2015年07月11日 08:43:10

问题描述:
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;
}

相关文章推荐

LeetCode::Reverse Integer C语言

题目 Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 ...

[leetcode 7] Reverse Integer(整数反转) c函数实现

[leetcode 7] Description: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x =...

[Leetcode]-Reverse Integer

//如果有pow函数,Linux下编译一定要加-lm //gcc ReverseInteger.c -o ReverseInteger -lm 关键:一定要注意操作过程中int类型超界 ...

LeetCode 7 Reverse Integer(C,C++,Java,Python)

Problem: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, re...

LeetCode 7. Reverse Integer(反转整数)

原题网址:https://leetcode.com/problems/reverse-integer/ Reverse digits of an integer. Example1: ...
  • jmspan
  • jmspan
  • 2016年05月19日 03:54
  • 777

7. Reverse Integer [easy] (Python)

题目链接https://leetcode.com/problems/reverse-integer/题目原文 Reverse digits of an integer. Example1: ...

[C++]LeetCode 7:Reverse Integer(翻转整数)

Problem: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321...

LeetCode 7 Reverse Integer(翻转整数)

翻译翻转一个整型数例1:x = 123, 返回 321 例2:x = -123, 返回 -321原文Reverse digits of an integer.Example1: x = 123, re...
  • NoMasp
  • NoMasp
  • 2015年09月23日 09:13
  • 3579

LeetCode7——Reverse Integer

Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 大意 反转i...

Leetcode 7 Reverse Integer 反转数字

题目: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【leetcode-7】Reverse Integer(C语言)
举报原因:
原因补充:

(最多只允许输入30个字)