Given a 32-bit signed integer, reverse digits of an integer.
Example 1:
Input: 123 Output: 321
Example 2:
Input: -123 Output: -321
Example 3:
Input: 120 Output: 21
Note:
Assume we are dealing with an environment which could only hold integers within the 32-bit signed integer range. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
class Solution { public int reverse(int x) { long result = 0; boolean isPositive = x < 0; x = isPositive ? -x : x; while (x > 0) { result = result * 10 + x % 10; x = x / 10; } if (result > Integer.MAX_VALUE) { return 0; } result = isPositive ? -result : result; return (int)result; } }
Failed case: Shouldn't use int to hold result
Input:
1534236469
Output:
1056389759
Expected:
0