整数反转


给你一个 32 位的有符号整数 x ,返回其数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)(只允许使用int类型的变量)

提示:-231 <= x <= 231 - 1

1
2
3
4
input:120
output:21
input:0
output:0
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 ans = 0;
while (x) {
if (ans > INT_MAX / 10 || ans < INT_MIN / 10 ||
ans == INT_MAX / 10 && x % 10 > 7 ||
ans == INT_MIN / 10 && x % 10 < -8
) {
ans = 0;
break;
}
ans = ans * 10 + x % 10;
x /= 10;
}
return ans;
}
};