7. Reverse Integer
Given a 32-bit signed integer, reverse digits of an integer.
Note: Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−2^31, 2^31 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
public int reverse(int n) {
int negative = n < 0 ? -1 : 1;
long x = Math.abs(n), r = 0;
while(x > 0) {
r *= 10;
r += x % 10;
x /= 10;
}
return r > Integer.MAX_VALUE ? 0 : negative * (int)r;
}