LeetCode 7 整数反转

题目:

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−2^31,  2^31 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。

解题:

对于给出的整数取模,然后乘以10即可,乘之前判断一下之前的和是否在最大值和最小值的十分之一范围内

代码:


func reverse(x int) int {
    sum := 0
    for x != 0 {
        if sum > math.MaxInt32/10 || sum < math.MinInt32/10 {
            return 0
        }
        sum = sum*10 + x%10
        x = x / 10
    }
    return sum
}

官方题解和我写的差不多


func reverse(x int) (rev int) {
    for x != 0 {
        if rev < math.MinInt32/10 || rev > math.MaxInt32/10 {
            return 0
        }
        digit := x % 10
        x /= 10
        rev = rev*10 + digit
    }
    return
}

哦耶

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注