Description
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 [-2
31
, 2
31
- 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:
-2
31
<= x <= 2
31
- 1
Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
int reverse(int x) {
int ret = 0;
bool neg = (x < 0 ? true : false);
while (x >= 10 || x <= -10) {
ret = ret * 10 + x % 10;
x /= 10;
}
if (ret < -214748364 || (ret == -214748364 && x < -8)) {
return 0;
} else if (ret > 214748364 || (ret == 214748364 && x > 7)) {
return 0;
}
ret = ret * 10 + x % 10;
return ret;
}
};
Runtime: 0 ms, faster than 100.00% of C++ online submissions for Reverse Integer.
Memory Usage: 5.9 MB, less than 60.93% of C++ online submissions for Reverse Integer.