这道题的重点是判断数值越界。以下代码已提交通过。
import "math"
func reverse(x int) int {
var (
rev int
maxR = math.MaxInt32/10
maxP = math.MaxInt32%10
minR = math.MinInt32/10
minP = math.MinInt32%10
)
for x != 0 {
pop := x%10
if rev > maxR || (rev == maxR && pop > maxP) {
return 0
}
if rev < minR || (rev == minR && pop < minP) {
return 0
}
rev = rev*10 + pop
x /= 10
}
return rev
}