LeetCode(7) Reverse Integer

原创 2013年12月04日 02:02:23

本题比较简单,也比较坑爹,

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


题目明确提示了你要考虑反转后溢出的的问题。如果溢出了,返回什么都不合适,那就统一返回一个错误代码吧,return -1吧。这样写提交通过

class Solution {
public:
    int reverse(int x) {
        int result=0;
        bool is_positive=x>0?true:false;
        if(!is_positive)
            x=-x;
        while(x>0){
            int add=x-x/10*10;
        //std::cout<<"x="<<x<<",add="<<add<<",result="<<result<<std::endl;
            result=result*10+add;
            x=x/10;
        }
        if(result<0)
            return -1;
        if(!is_positive)
            result=-result;
        return result;
    }
};


但是,如果把下面2行处理溢出的语句删除,也是可以提交通过的。

        //if(result<0)
          //  return -1;


估计是,因为题目没有给定一个统一的错误代码,在遇到溢出情况的时候统一返回,所以OJ也没法制定出一个标准来检测code了。


update1:后来看到一个更好的解决溢出办法在这里  http://blog.csdn.net/stephen_wong/article/details/28779481


update2 : 2014-10-06 简化之前的代码。

因为leetcode没有让人处理溢出,所以这里暂时不处理溢出。(如果要处理,看上面给出的参考链接)。不处理溢出的版本重写后是这样的:

class Solution {
public:
    int reverse(int x) {
        bool is_pos = x > 0;
        x = abs(x);
        int result = 0;
        while (x >= 1) { //逐个地处理x的个位,十位,百位...
            result = result * 10 + x % 10; //注意求个位可以用%,不用像上面那么麻烦。
            x = x / 10;
        }
        if (is_pos) return result;
        else return -result;
    }
};


7. Reverse Integer 反转int

7. Reverse Integer问题:反转int,当有负号时需要保留负号。解决思路:1、先将int类型转换为string,按照之前写过的string类型做好反转,再转为int类型。2、不做类型转换...
  • u010223431
  • u010223431
  • 2016年05月06日 09:48
  • 2251

[LeetCode][7]Reverse Integer解析与位运算实现 -Java实现

Q: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 ...
  • u014629433
  • u014629433
  • 2016年06月06日 15:57
  • 1371

Reverse Integer -- LeetCode

原题链接: http://oj.leetcode.com/problems/reverse-integer/  这道题思路非常简单,就是按照数字位反转过来就可以,基本数字操作。但是这种题的考察重点并不...
  • linhuanmars
  • linhuanmars
  • 2014年02月27日 05:39
  • 13975

Reverse Integer

首先我要在纸上,非常非常聪明且迅速且机灵,给出几个用例,找出边界用例和特殊用例,确定特判条件;在编码前考虑到所有的条件向面试官提问:问题规模,特殊用例给出函数头暴力解,简述,优化。给出能够想到的最优价...
  • Selfind
  • Selfind
  • 2012年11月03日 11:25
  • 437

反转整数的每一位(reverse integer)

1 题目 Reverse digitsof an integer.   Example1: x = 123, return321 Example2: x = -123, return-321 2 分析...
  • woniu317
  • woniu317
  • 2015年08月23日 00:46
  • 821

reverse-integer(反转整型)

题目描述Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 c...
  • five0918
  • five0918
  • 2016年09月26日 20:32
  • 1179

LeetCode7——Reverse Integer

Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 大意 反转i...
  • booirror
  • booirror
  • 2015年01月26日 11:21
  • 2620

leetcode7

Reverse Integer 非常简单的题,难点在于溢出问题。就是这个溢出问题真是折腾死我了。。。 首先确定两个宏 INT_MAX 和  INT_MIN 来表示int型所表示的最大和最小。 当然,网...
  • zhangxiao93
  • zhangxiao93
  • 2015年09月24日 23:28
  • 523

LeetCode 7: Reverse Integer

Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 代码如下:...
  • sunao2002002
  • sunao2002002
  • 2015年06月01日 23:07
  • 2022

Leetcode 7 Reverse Integer 反转数字

题目: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return ...
  • vvaaiinn
  • vvaaiinn
  • 2015年04月20日 10:28
  • 4659
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode(7) Reverse Integer
举报原因:
原因补充:

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