LeetCode学习-golang整数反转(题7)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/glw0223/article/details/88390755

题面

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [ 2 31 , 2 31 1 ] [−2^{31}, 2^{31} − 1] 。请根据这个假设,如果反转后整数溢出那么就返回 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)

猜你喜欢

转载自blog.csdn.net/glw0223/article/details/88390755