题目
给你一个 32 位的有符号整数 x
,返回将 x
中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−2
31, 2
31− 1]
,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123
输出:321
1
2
2
示例 2:
输入:x = -123
输出:-321
1
2
2
示例 3:
输入:x = 120
输出:21
1
2
2
示例 4:
输入:x = 0
输出:0
1
2
2
提示:
-2
31<= x <= 2
31- 1
题解
java
public int reverse(int x) {
StringBuilder sb = new StringBuilder(String.valueOf(x)).reverse();
// 负数处理
if (x < 0) {
sb.insert(0, "-");
sb.delete(sb.length() - 1, sb.length());
}
Long result = Long.valueOf(sb.toString());
// 溢出判断
if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE) {
return 0;
}
return result.intValue();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16