为了账号安全,请及时绑定邮箱和手机立即绑定

Leetcode Reverse Integer 中的溢出处理

Leetcode Reverse Integer 中的溢出处理

达令说 2019-04-13 08:36:25
原题有这样的提示“Didyounoticethatthereversedintegermightoverflow?Assumetheinputisa32-bitinteger,thenthereverseof1000000003overflows.Howshouldyouhandlesuchcases?”看到有人写了一个这样的答案intreverse(intx){intflag=x>0?1:-1,res=0;x=x>0?x:-x;while(x>0){if((2147483647.0-x%10)/10
查看完整描述

2 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

(2147483647.0-x%10)/10
我的做法是直接用long型:
publicintreverse(intx){
intsign=1;
if(x<0){
sign=-1;
x*=-1;
}
longresult=0;
while(x!=0){
result=result*10+x%10;
if(sign*result>Integer.MAX_VALUE||
sign*resultreturn0;
x=x/10;
}
return(int)result*sign;
                            
查看完整回答
反对 回复 2019-04-13
?
长风秋雁

TA贡献1757条经验 获得超7个赞

它判断的是每轮的结果是否超过intif((2147483647.0-x%10)/10
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 345 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信