思路一:
转换成字符串,再反转,判断是否超出范围
思路二:
通过除 10 取余的方式,得到每一位,得到切片,再反转重组
func reverse(x int) int {
var slice []int
for x != 0 {
slice = append(slice, x%10)
x = x / 10
}
var result float64 = 0
//然后基于切片重组
for i, j := 0, len(slice)-1; i < j; i, j = i+1, j-1 {
slice[i], slice[j] = slice[j], slice[i]
}
//err:需要反转slice
for i := 0; i < len(slice); i++ {
result += float64(slice[i]) * math.Pow(10, float64(i))
}
//判断是否超过范围
if result > math.MaxInt32 || result < math.MinInt32 {
return 0
}
return int(result)
}