处理这题,就是要注意最大值和最小值。。不要慌!
1,先转化成正数,前提是该数不是MIN_VALUE。然后就按照正数的方法来处理。2,然后要把overflow的条件写好,不能正着写,要反正写,见下面代码,然后大于小于的方向别搞反了。
代码:
public class Solution {
public int reverse(int x) {
if(x==Integer.MIN_VALUE) return 0;
int num = Math.abs(x);
int result=0;
while(num!=0){
if((Integer.MAX_VALUE-num)/10<result) return 0;
result = 10*result + num;
num/=10;
}
return (x>0)?result:result*(-1);
}
}