关注
作预检测就好了呀
我们的返回结果肯定是这样子的变化,比如返回结果定义ans,目标整数是x
每次的变化是
bit = x%10 // 拿到低位
x/=10
ans = ans*10+bit // 加入ans的高位
// 溢出检测就可以在ans=ans*10+bit之前做
本质上是 ans*10+bit > maxInt32 => ans > (maxInt32-bit)/10
代码可以这样写:
func reverse(x int) int {
neg := false
// 只检查正溢出
if x < 0 {
neg = true
x = -x
}
ans := 0
for x > 0 {
bit := x % 10
x /= 10
// 检查溢出
if ans > (math.MaxInt32-bit)/10 {
// 溢出
return 0
}
ans = ans*10 + bit
}
if neg {
return -ans
}
return ans
}
查看原帖
点赞 3
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
5881次浏览 78人参与
# 机械人避雷的岗位/公司 #
41413次浏览 270人参与
# 程序员找工作至少要刷多少题? #
10847次浏览 170人参与
# 过年最难忘的一件事 #
22897次浏览 174人参与
# 论秋招对个人心气的改变 #
6514次浏览 111人参与
# 为了减少AI幻觉,你注入过哪些设定? #
2198次浏览 81人参与
# 牛客AI体验站 #
3967次浏览 115人参与
# 刚入职的你踩过哪些坑 #
4778次浏览 100人参与
# AI Coding的使用心得 #
2919次浏览 83人参与
# 找工作的破防时刻 #
252620次浏览 1960人参与
# 一张图晒一下你的AI员工 #
3380次浏览 80人参与
# 我现在比当时_,你想录用我吗 #
4420次浏览 73人参与
# 关于春招/暑期实习,你想知道哪些信息? #
4759次浏览 88人参与
# 程序员能干到多少岁? #
6292次浏览 93人参与
# 12306一秒售罄,你抢到回家的票了吗? #
772次浏览 22人参与
# 晒晒你司的新年福利 #
4669次浏览 76人参与
# 大家实习每天都在干啥 #
119149次浏览 627人参与
# 我的工作日记 #
172822次浏览 1680人参与
# 黄金这个事上,你学到了什么 #
1055次浏览 31人参与
# 机械人你知道哪些单休企业 #
85094次浏览 428人参与