Leetcode(2)-反转整数

给定一个 32 位有符号整数,将整数中的数字进行反转。

示例 1:

输入: 123
输出: 321

 示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

注意:

假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31,  2^31 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。

class Solution {
public:
   int reverse(int x)
    {
        int t=0;
        while(x!=0)
        {
            if(t<=INT_MAX/10 && t>=INT_MIN/10)
            {
                t=t*10+x%10;
                x=x/10;
            }
            else
            {
                return 0;
            }
        }
        return t;
    }
};

这个程序的思路很简单,主要是边界值的考虑,比如刚好是INT_MAX,INT_MAX-1,INT_MIN,INT_MIN+1的情况,另外对于负数的情况,我们直接用上述处理是可以保留负号的,所以不用额外考虑。

猜你喜欢

转载自www.cnblogs.com/mini-coconut/p/8946926.html