7. Reverse Integer

2017-12-20  本文已影响0人  夏臻Rock

32位整数反转int(十进制整数),注意保留符号。

划重点:

1. java中的int类型存储长度为32bit,即范围是:“-2^32” ~ “2^32 -1” 。注意取反转时可能存在越界,越界时返回0。
2. 尾数为0的数,反转后返回的数不计前面的0

题目
思路:
tips:

int,long,Integer,Long四种类型之间的相互转化:
一.将long型转化为int型,这里的long型是基础类型:
long a = 10; int b = (int)a;
二.将Long型转换为int 型的,这里的Long型是包装类型:
Long a = 10; int b=a.intValue();
三.将int型转化为long型,这里的int型是基础类型:
int a = 10;long b = (int)a;
四.将Integer型转化为long型,这里的Integer型是包装类型:
int a = 10;Long b = a.longValue();

代码:
class Solution {
    public int reverse(int x) {
        long result = 0;  //将结果存储为long型,初始化
        int tmp = Math.abs(x); //取整数的绝对值,将负数先作正数处理
        while(tmp>0){
            result *= 10;
            result += tmp%10;  //模十取余
            tmp /=10;
            //下面对是否越界进行判断,如果越界,返回0
            if(result >Integer.MAX_VALUE || result<Integer.MIN_VALUE ){
                result = 0;
                break;
            }           
        }
        result = x>0?result:-result; //保留负号
        return (int)result;  //将long类型的result转换为int型并返回;
    }
}
后续 Follow Up

Q:拿到反转整数题目后第一步是什么?
A:先问出题者尾部有0的数字反转后应该是什么形式,其次问清楚溢出时应该返回什么。

Q:除了检查溢出返回特定值以外,有没有别的方法处理溢出?
A:可以使用try-catch代码块排除异常。

上一篇 下一篇

猜你喜欢

热点阅读