关注
作预检测就好了呀
我们的返回结果肯定是这样子的变化,比如返回结果定义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
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的实习收获 #
20172次浏览 365人参与
# 在国企工作的人,躺平了吗? #
332725次浏览 3859人参与
# 实习吐槽大会 #
22624次浏览 105人参与
# 商战,最累的是我们 #
12475次浏览 48人参与
# 晒一晒你的工位 #
82822次浏览 293人参与
# 我的租房踩坑经历 #
14775次浏览 194人参与
# 夸夸我的求职搭子 #
190647次浏览 1890人参与
# 小厂实习有必要去吗 #
46196次浏览 267人参与
# 穿越回高考你还会选现在的专业吗 #
15215次浏览 205人参与
# 毕业旅行去哪玩儿 #
821次浏览 24人参与
# 携程求职进展汇总 #
527927次浏览 3922人参与
# 牛友打假中心 #
89526次浏览 2649人参与
# 今年形式下双非本找得到工作吗 #
140511次浏览 1067人参与
# 实习中的菜狗时刻 #
366062次浏览 3295人参与
# 工作压力大怎么缓解 #
79081次浏览 934人参与
# 打工人锐评公司红黑榜 #
144993次浏览 901人参与
# 产运销实习日记 #
51794次浏览 546人参与
# 工作丧失热情的瞬间 #
280880次浏览 2341人参与
# 互联网回暖,腾讯要招5000人! #
16929次浏览 554人参与
# 互联网公司评价 #
382806次浏览 3796人参与