版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/glw0223/article/details/88390755
题面
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为
。请根据这个假设,如果反转后整数溢出那么就返回 0。
源码
package reverse
func Myreverse(x int) (result int) {
sign:=false
if x <=0{
sign=true
x = -x
}
for x > 0 {
temp:=x%10
result = result*10 + temp
x = x/10
}
if sign {
result = -result
}
return
}
测试代码
package test
import (
"fmt"
"github.com/glw0223/LeetCode-go/reverse"
"testing"
)
func TestReverse(t *testing.T) {
var result int
result=reverse.Myreverse(123)
fmt.Println(result)
result=reverse.Myreverse(-123)
fmt.Println(result)
result=reverse.Myreverse(120)
fmt.Println(result)
}
测试结果
API server listening at: 127.0.0.1:54915
=== RUN TestReverse
321
-321
21
--- PASS: TestReverse (0.00s)
PASS
Debugger finished with exit code 0
复杂度
时间复杂度:O(n)
空间复杂度:O(1)