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、不做类型转换...

[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/  这道题思路非常简单,就是按照数字位反转过来就可以,基本数字操作。但是这种题的考察重点并不...

LeetCode7——Reverse Integer

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

LeetCode算法题:JAVA实现整数反转reverse integer

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

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

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

【leetcode】Reverse Integer整数反转----Java代码实现

用Java实现反转整数 Reverse Integer

LeetCode 7: Reverse Integer

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

leetcode_7_Reverse Integer

思路倒是简洁明了,将整数的非符号部分的各位存储到一个数组里面,然后将各位组装起来就成为一个新的整数。当然,溢出,符号都是需要考虑的。...

【LeetCode7】【Reverse Integer】java中整形正负表示的一些思考

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

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