
Example:
Input: 120
Output: 21
Solution:
import (
"math"
)
func reverse(x int) int {
sign := 1
// 若遇到负数,先暂时转正
if x < 0 {
sign = -1
x = -1 * x
}
// 预设反转后的数rvs为0
rvs := 0
// 直到将x的所有数字全部去掉之前
for x > 0 {
// 通过取余逐个获取x的末尾数res
res := x % 10
// 将res放到rvs的首位
rvs = rvs*10 + res
// 每次完成后去掉x末尾数(go的整数除法所得商向下取整,整数与点数相除所得商转为点数)
x = x / 10
}
// 还原x的符号到rvs
rvs = sign * rvs
// 处理rvs的溢出
if rvs > math.MaxInt32 || rvs < math.MinInt32 {
rvs = 0
}
return rvs
}




近期评论