题目描述
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
思路
中规中矩,逐个取出每一位数,存到一个数组中,最后拼接成新的数,因为在平台上int默认为64位整型,所有比较判断溢出即可
Code
- Golang
func reverse(x int) (res int) {
min := math.MinInt32
max := math.MaxInt32
bts := []int{}
res = x
if x < 0 {
res = -res
}
for i:=1;res > 0;i++ {
ys := res % 10
bts = append(bts, ys)
res /= 10
}
for i, l := 0, len(bts); i < l; i++ {
res += bts[i]
res *= 10
}
res /= 10
if x < 0 && -res > min {
return -res
}
if x > 0 && res < max {
return res
}
return 0
}
有疑问加站长微信联系(非本文作者)