7. Reverse Integer

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7. Reverse Integer相关的知识,希望对你有一定的参考价值。

就是需要考虑溢出。

方法一:

用StringBuilder来reverse,然后直接用Integer.valueOf()来转成int,这个时候如果溢出就会throw exception,所以抓一下就好。

学会使用try&catch

 

public int reverse(int x) {
        boolean flag = x < 0;
        x = Math.abs(x);
        StringBuilder sb = new StringBuilder();
        sb.append(x);
        int res = 0;
        try{
            res = Integer.valueOf(sb.reverse().toString());
        } catch(Exception ex) {
        }
        return flag ? -res : res;
    }

 

方法二:

用数学方法。

public int reverse(int x) {
        long res = 0; //long!!! not int!!!!!
        while(x != 0) {
            res = res * 10 + x % 10;
            x /= 10;
        } 
        if(res > Integer.MAX_VALUE || res < Integer.MIN_VALUE) {
            return 0;
        }
        return (int)res;
    }

不需要单独考虑正负号.

考虑溢出的话,需要把结果变成long

 

以上是关于7. Reverse Integer的主要内容,如果未能解决你的问题,请参考以下文章

leetcode-7. Reverse Integer

LeetCode 7. Reverse Integer

7. Reverse Integer

7. Reverse Integer

7. Reverse Integer

7. Reverse Integer