Package g0001_0100.s0007_reverse_integer
Class Solution
java.lang.Object
g0001_0100.s0007_reverse_integer.Solution
7 - Reverse Integer.
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:
- Define a
Solution
class with a method namedreverse
. - Initialize variables to keep track of the reversed integer (
rev
), the sign of the input integer (sign
), and the absolute value of the input integer (x
). - Iterate through each digit of the input integer
x
:- Extract the least significant digit using the modulo operator.
- Update the reversed integer
rev
by multiplying it by 10 and adding the extracted digit. - Update
x
by removing the least significant digit using integer division.
- Check if the reversed integer
rev
overflows the signed 32-bit integer range. If so, return 0. - Return the reversed integer
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.
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
Solution
public Solution()
-
-
Method Details
-
reverse
public int reverse(int x)
-