Skip to content

一、问题描述

给出一个整数,你需要对该整数进行反转。假设环境不允许存储64位整数(有符号或无符号),则需将结果截断至32位整数范围内。

二、方案一:数学方法

1、思路

我们可以通过不断地将整数x的末尾数字取出,然后将其添加到结果的末尾,来实现整数的反转。具体步骤如下:

  • 初始化结果为0。
  • x不为0时,取出x的末尾数字pop
  • 更新结果,将result乘以10并加上pop
  • 更新x,将其除以10并向下取整。
  • 重复上述步骤直到x为0。

2、代码实现

go
func reverse(x int) int {
	if x < 0 {
		return -reverse(-x)
	}

	sum := 0
	for x > 0 {
		sum = sum*10 + x%10
		x /= 10
	}

    if sum < math.MinInt32 || sum > math.MaxInt32 {
        return 0
    }

	return sum
}

木川工作室 (微信:mcmc2024)