题目:7. 整数反转
给你一个 32
位的有符号整数 x
,返回将 x
中的数字部分反转后的结果。
如果反转后整数超过 32
位的有符号整数的范围 [, ],就返回 0
。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
示例 4:
输入:x = 0
输出:0
提示:
- <= x <=
解题思路
见代码。
实现代码
package leetcode
import "math"
func reverseInt(x int) int {
ret := 0
for x != 0 {
pop := x % 10
x /= 10
ret = ret*10 + pop
if ret < math.MinInt32 || ret > math.MaxInt32 {
return 0
}
}
return ret
}
单元测试
package leetcode
import (
"testing"
"github.com/stretchr/testify/assert"
)
func Test_reverse(t *testing.T) {
assert := assert.New(t)
type args struct {
x int
}
tests := []struct {
args args
want int
}{
{
args: args{x: 123},
want: 321,
},
{
args: args{x: -123},
want: -321,
},
{
args: args{x: 120},
want: 21,
},
{
args: args{x: 0},
want: 0,
},
}
for _, tt := range tests {
actual := reverseInt(tt.args.x)
assert.Equal(tt.want, actual)
}
}