Description
Given a 32-bit signed integer, reverse digits of an integer.
1 2 3
| Input: 123 Output: 321 Example 2:
|
1 2 3
| Input: -123 Output: -321 Example 3:
|
Solution
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
| func reverse(x int) int { sign := 1
if x < 0 { sign = -1 x *= -1 }
result := 0 for x > 0 { temp := x % 10 result = result*10 + temp x = x / 10 }
result *= sign
if result > math.MaxInt32 || result < math.MinInt32 { result = 0 }
return result }
|
Note
假設有以下參數:
說明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| x 為 321: result 為 0:
取得 x 的尾數為 1,把 result 乘以 10 加上 1,把 x 除以 10。
x 為 32: result 為 1:
取得 x 的尾數為 2,把 result 乘以 10 加上 2,把 x 除以 10。
x 為 3: result 為 21:
取得 x 的尾數為 3,把 result 乘以 10 加上 3,把 x 除以 10。
x 為 0: result 為 321:
|
Code