7. 整数反转

题目描述

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例

示例 1:
输入: 123
输出: 321

 示例 2:
输入: -123
输出: -321

示例 3:
输入: 120
输出: 21

解法

func reverse(x int) int {
var (
n int
k int
f int
)
f = 1
if x < 0 {
f = -1
x *= f
}
for x > 0 {
if k != 0 {
n *= 10
}
n += x % 10
x /= 10
k++
}
n *= f
if n > 2147483648 || n < -2147483648 {
n = 0
}
return n
}

本地测试

package main

import (
"fmt"
)

func main() {
n := 123
fmt.Println(reverse(n), n)
n = -123
fmt.Println(reverse(n), n)
n = 120
fmt.Println(reverse(n), n)
n = 1534236469
fmt.Println(reverse(n), n)
n = 1563847412
fmt.Println(reverse(n), n)
}

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer