7. Reverse Integer

2018-11-28  本文已影响0人  gpfworld

题目描述:

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不需要记忆,可以直接使用并打印就知道其值。

上一篇下一篇

猜你喜欢

热点阅读