题目
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
解法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| func reverse(x int) int { negative := false if x < 0 { negative = true } var tmp int64 if negative { tmp = -1 * int64(x) } else { tmp = int64(x) }
var y int64
for i := 1; ; i++ { if tmp / 10 == 0 { y = y * 10 + tmp % 10 break } y = y * 10 + tmp % 10 tmp = tmp / 10 }
if y > (1 << 31 -1) { return 0 }
if negative { return int(-1 * y) }
return int(y) }
|