LeetCode 07-整数反转

1.整数反转

//2^31-1=2147483647,-2^31=-2147483648
//Integer溢出判断是因为MAX_VALUE : 2147483647 MIN_VALUE : -2147483648 他要判断最后一位不要大于 7 和 不要小于8
public class ReserveNum07 {
    public int reverse(int x) {
        int rev = 0;
        while (x != 0) {
            int pop = x % 10;
            x /= 10;
            //rev > Integer.MAX_VALUE/10 此数必须为32位; rev == Integer.MAX_VALUE / 10 && pop > 7 此数必须小于int最大值
            if (rev > Integer.MAX_VALUE/10 || (rev == Integer.MAX_VALUE / 10 && pop > 7)) return 0;
            //rev < Integer.MIN_VALUE/10 此数必须为32位; rev == Integer.MIN_VALUE / 10 && pop < -8 此数必须大于int最小值
            if (rev < Integer.MIN_VALUE/10 || (rev == Integer.MIN_VALUE / 10 && pop < -8)) return 0;
            rev = rev * 10 + pop;
        }
        return rev;
    }
}

2.LeetCode测试结果

发布了53 篇原创文章 · 获赞 0 · 访问量 1653

猜你喜欢

转载自blog.csdn.net/weixin_45450428/article/details/103889626