LeetCode题解-7-Reverse Integer
LeetCode题解-7-Reverse Integer
蔡晓建 发表于10个月前
LeetCode题解-7-Reverse Integer
  • 发表于 10个月前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

解题思路

这个题目是反转一个整数,但是要求如果出现溢出的时候返回0。思路如下:

  • 如果是负数,考虑先转成正数再处理,所以对MIN_VALUE先要做特殊处理。
  • 现在都是正数了,反转结果用一个long来存储,这样就保证不会溢出了。
  • 如果处理后结果大于MAX_VALUE,说明溢出了,返回0。
  • 结果在转成int返回。

参考源码

class Solution {
    public int reverse(int x) {
        if(x == Integer.MIN_VALUE){
            return 0;
        }

        boolean nav = false;
        if (x < 0) {
            nav = true;
            x = -x;
        }

        long t = 0;
        while (x != 0) {
            t = 10 * t + x % 10;
            x = x / 10;
        }
        if(t>Integer.MAX_VALUE) {
            return 0;
        }

        int r = (int)t;
        if (nav) {
            r = -r;
        }
        return r;
    }
}
共有 人打赏支持
粉丝 8
博文 25
码字总数 9436
×
蔡晓建
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: