(x int)
| 10 | } |
| 11 | |
| 12 | func reverse(x int) int { |
| 13 | |
| 14 | strX := fmt.Sprintf("%d", x) |
| 15 | // last zero |
| 16 | if strX[len(strX)-1] == '0' { |
| 17 | strX = strX[:len(strX)-1] |
| 18 | } |
| 19 | |
| 20 | lenAfter := len(strX) |
| 21 | if lenAfter > 0 { |
| 22 | sign := 1 |
| 23 | // sign |
| 24 | if strX[0] == '-' { |
| 25 | sign = -1 |
| 26 | lenAfter-- |
| 27 | } |
| 28 | |
| 29 | ret := make([]byte, lenAfter) |
| 30 | for i := 0; i < len(ret); i++ { |
| 31 | ret[i] = strX[len(strX)-1-i] |
| 32 | } |
| 33 | val, _ := strconv.Atoi(string(ret)) |
| 34 | if val > 1<<31-1 { |
| 35 | val = 0 |
| 36 | } |
| 37 | return val * sign |
| 38 | } |
| 39 | |
| 40 | return 0 |
| 41 | } |