Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
这道题是一道很简单的题,基本思路就是定义一个result,然后result*10+x%10.
只是需要进行正负号的判断,代码如下
public int reverse(int x) {
int num = Math.abs(x);
int result = 0;
while (num > 0) {
result = result * 10 + num % 10;
num = num / 10;
}
return x > 0 ? result : (-result);
}
那么如何判断越界问题呢?
就是我们在判断result*10+num%10越界之前返回最大值(最小值)即可
public int reverse(int x) {
int num = Math.abs(x);
int result = 0;
while (num > 0) {
if (result > (Integer.MAX_VALUE - num % 10) / 10)
return x > 0 ? Integer.MAX_VALUE : Integer.MIN_VALUE;
result = result * 10 + num % 10;
num = num / 10;
}
return x > 0 ? result : (-result);
}