7.整数反转
题目
7.整数反转 <
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
解题
解题步骤:
- 初始化 y,用于保存反转结果
- 循环取模相加,获取反转结果 (这里要提前判断反转结果是否在范围内)
go
func reverse(x int) int {
var y int // 反转结果
for x != 0 {
// 提前判断是否溢出,避免下次结果报错
if y > math.MaxInt32/10 || y < math.MinInt32/10 {
return 0
}
digit := x % 10
x /= 10
y = y*10 + digit
}
return y
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15