Medium
Given a signed 32-bit integer x
, return x
with its digits reversed. If reversing x
causes the value to go outside the signed 32-bit integer range [-231, 231 - 1]
, then return 0
.
Assume the environment does not allow you to store 64-bit integers (signed or unsigned).
Example 1:
Input: x = 123
Output: 321
Example 2:
Input: x = -123
Output: -321
Example 3:
Input: x = 120
Output: 21
Example 4:
Input: x = 0
Output: 0
Constraints:
-231 <= x <= 231 - 1
To solve the Reverse Integer problem in Java using a Solution
class, we’ll follow these steps:
Solution
class with a method named reverse
.rev
), the sign of the input integer (sign
), and the absolute value of the input integer (x
).x
:
rev
by multiplying it by 10 and adding the extracted digit.x
by removing the least significant digit using integer division.rev
overflows the signed 32-bit integer range. If so, return 0.rev
with the appropriate sign.Here’s the implementation:
public class Solution {
public int reverse(int x) {
int rev = 0;
int sign = (x < 0) ? -1 : 1;
int limit = Integer.MAX_VALUE / 10;
int absX = Math.abs(x);
while (absX > 0) {
int digit = absX % 10;
absX /= 10;
if (rev > limit || (rev == limit && digit > 7)) {
return 0;
}
if (rev < -limit || (rev == -limit && digit < -8)) {
return 0;
}
rev = rev * 10 + digit;
}
return rev * sign;
}
public static void main(String[] args) {
Solution solution = new Solution();
// Test cases
int x1 = 123;
System.out.println("Example 1 Output: " + solution.reverse(x1));
int x2 = -123;
System.out.println("Example 2 Output: " + solution.reverse(x2));
int x3 = 120;
System.out.println("Example 3 Output: " + solution.reverse(x3));
int x4 = 0;
System.out.println("Example 4 Output: " + solution.reverse(x4));
}
}
This implementation provides a solution to the Reverse Integer problem in Java.