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;
    }
};


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

LeetCode55. Jump Game

LeetCode 55.Jump Game

LeetCode 7: Reverse Integer

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

LeetCode7——Reverse Integer

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

LeetCode 7. Reverse Integer

整数反转,处理好fu 代码:

7. Reverse Integer 反转int

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

LeetCode笔记(1-10)?4,5,10

1.Two Sum#Given an array of integers, return indices of the two #numbers such that they add up to a ...

Leetcode: Reverse Integer

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

[LeetCode]Reverse Integer

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

Reverse Integer -- LeetCode

原题链接: http://oj.leetcode.com/problems/reverse-integer/  这道题思路非常简单,就是按照数字位反转过来就可以,基本数字操作。但是这种题的考察重点并不...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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