NOTE
整数反转
反转 32 位有符号整数的十进制数字并处理溢出。
这是历史学习笔记,可能存在过时或不完整的理解。
1. 题目描述
给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
2. 思路
- 思路一
- 除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)
}
讨论
使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看