7. Reverse Integer

7. Reverse Integer

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:

1
2
Input: x = 123
Output: 321

Example 2:

1
2
Input: x = -123
Output: -321

Example 3:

1
2
Input: x = 120
Output: 21

Constraints:

  • -2^31 <= x <= 2^31 - 1

Hints/Notes

  • 2024/12/16
  • digit
  • No solution from 0x3F

Solution

Language: C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public:
int reverse(int x) {
long res = 0;
while (x) {
int digit = x % 10;
int prev = res;
res = res * 10 + digit;
if ((int)res / 10 != prev) {
return 0;
}
x /= 10;
}
return res;
}
};