题目:
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
解题:
对于给出的整数取模,然后乘以10即可,乘之前判断一下之前的和是否在最大值和最小值的十分之一范围内
代码:
func reverse(x int) int {
sum := 0
for x != 0 {
if sum > math.MaxInt32/10 || sum < math.MinInt32/10 {
return 0
}
sum = sum*10 + x%10
x = x / 10
}
return sum
}
官方题解和我写的差不多
func reverse(x int) (rev int) {
for x != 0 {
if rev < math.MinInt32/10 || rev > math.MaxInt32/10 {
return 0
}
digit := x % 10
x /= 10
rev = rev*10 + digit
}
return
}
哦耶