NOTE

整数反转

反转 32 位有符号整数的十进制数字并处理溢出。

Data Structures & Algorithms创建于 更新于 约 1 分钟读完historical

这是历史学习笔记,可能存在过时或不完整的理解。

1. 题目描述

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

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

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

2. 思路

  1. 思路一
    1. 除10取余,再乘10

3. 实现

func reverse(x int) int {
    var res int32 = 0//要用int32
    for x != 0 {
        oldRes := res//是否溢出
        res = res * 10 + int32(x % 10)
        if res / 10 != oldRes {//是否溢出
            return 0
        }
        x /= 10
    }
    return int(res)
}

4. 参考

讨论

使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看