I am trying to solve a problem:
Given a 32-bit signed integer, reverse digits of an integer, returns 0 when the reversed integer overflows.
My solution is:
public int reverse(int x)
{
int reversedNumber = 0;
boolean isNumberNegative = x < 0;
x = Math.abs(x);
while (x >= 10)
{
reversedNumber = reversedNumber * 10 + (x % 10);
x = x / 10;
}
reversedNumber = reversedNumber * 10 + x;
return isNumberNegative ? -1 * reversedNumber : reversedNumber;
}
My problem is with the overflow, how do I find out if the reversedNumber
have overflown without using Math
utility class or long
and then checking?