2.Reverse Integer

题目:反转整数。
输入 123,输出 321;
输入 -23,输出 -23;
注意:int 的范围 [-232, 231-1],如果超出范围则返回 0。

注意:需要计算反转后的数是否超过了 int 的范围。
边界值计算方法参考:
1.假如 200 为最大值;
2.205 = 20 * 10 + 5 如果205是溢出的, 那么 20 肯定大于 200 / 10 ;
3.如果 20 > 200 / 10,那么 205 是溢出的;
4.如果 20 == 200/10,此时如果 pop > 5 则为溢出的;
5.将200更换为 231-1 对应的值,同样最小值也是这么计算。

解题思路:通过 %(取余)来获取个位上的数字,数字 / (除以)10,就获得了新的个位上的数。

public int reverse(int x) {
    int rev = 0;
    while(x != 0) {
        int pop = x % 10;
        x /= 10;
        if(rev > Integer.MAX_VALUE / 10 || (rev == Integer.MAX_VALUE / 10 && pop > 7)) {
            return 0;
        }
        if(rev < Integer.MIN_VALUE / 10 || (rev == Integer.MIN_VALUE / 10 && pop < -8)) {
             return 0;
        }
        rev = rev * 10 + pop;
    }
    return rev;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容