【 Problem Description 】
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
click to show spoilers.
[thinking]
This problem seems simple, but there are more pits.
Integer inversion is a simple problem, but overflow needs to be dealt with.
Save the result as a long, returning 0 if it is greater than the integer maximum or less than the negative minimum
[code]
public class Solution {
public int reverse(int x) {
if (x == 0) {
return 0;
}
int sign = 1;
if (x < 0) {
sign = -1;
}
long result = 0;
long t = Math.abs((long) x);
while (t != 0) {
result = result * 10 + t % 10;
;
t /= 10;
}
if ((sign == 1 && result > Integer.MAX_VALUE)
|| (sign == -1 && sign * result < Integer.MIN_VALUE)) {
return 0;
}
return sign * (int) result;
}
}