7. Reverse Integer
1. Description
Given a 32-bit signed integer, reverse digits of an integer.
2. Note
Assume we are dealing with an environment that 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.
3. Example
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
4. Constraints
- $−2^{31}$ <= x <= $2^{31}$ - 1
5. Solutions
My Accepted Solution(Follow Up)
Time complexity: O(1)
Space complexity: O(1)
class Solution {
public:
int reverse(int num) {
int reversed_num = 0;
while(num != 0) {
if(abs(reversed_num) <= INT_MAX / 10) {
reversed_num = reversed_num * 10 + num % 10;
num /= 10;
} else {
return 0;
}
}
return reversed_num;
}
};