码迷,mamicode.com
首页 > 其他好文 > 详细

7. Reverse Integer

时间:2016-01-27 07:06:44      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

就是需要考虑溢出。

方法一:

用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

标签:

原文地址:http://www.cnblogs.com/warmland/p/5162022.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!