美文网首页
7. Reverse Integer

7. Reverse Integer

作者: gpfworld | 来源:发表于2018-11-28 10:43 被阅读0次

    题目描述:

    https://leetcode.com/problems/reverse-integer/

    解决方法:

    https://leetcode.com/problems/reverse-integer/solution/

    mycode(c++):

    class Solution {
    public:
        int reverse(int x)  {
            int ret = 0 ;
            while(x != 0){
                int pop = x % 10;
                x = x / 10 ;
                if ( ret > INT32_MAX/10 ||(  ret == INT32_MAX/10 && pop > 7)) return 0 ;
                if ( ret < INT32_MIN/10 ||(  ret == INT32_MIN/10 && pop < -8)) return 0 ;
                ret = ret * 10 + pop ;
            }
            return ret;
        }
    };
    

    心得:数字反转是经典思路,但是对于溢出的解决需要注意,signed int32 的范围是

    -2^31 ~ 2^31-1,即-2147483648~2147483647。所以程序中才能对pop进行范围的判断。
    还有就是c++中内置了,INT32_MAX和INT32_MIN不需要记忆,可以直接使用并打印就知道其值。

    相关文章

      网友评论

          本文标题:7. Reverse Integer

          本文链接:https://www.haomeiwen.com/subject/nwcaqqtx.html