您的位置:首页 > 其它

leetcode-Reverse Integer-7

2016-05-28 20:49 337 查看
又一个很蠢的解法:重点在于整数int的范围,当逆向后如果越界了返回的结果是0,所以在计算的过程中要判断是否越界,我也不知道自己是怎么糊涂的过的。蒙混过关。

class Solution {
public:
int reverse(int x) {
if(x==0) return x;
int ok=1;
if(x<0){
if(x<=-2147483648) return 0;
x*=-1;
ok=-1;
}
if(x>2147483647) return 0;
int tmp[100];
int ans=0;
int cnt=0;
while(x){
tmp[cnt++]=x%10;
x/=10;
}
for(int i=0;i<cnt;i++){
int ss=1;
for(int j=0;j<cnt-i-1;j++) ss*=10;
int tp=tmp[i]*ss;
ans+=tp;
if(cnt==10&&i==0&&tmp[i]>2){
return 0;
ans=0;
ok=1;
break;
}
}
if(ok==-1) ans*=-1;
if(ok*ans<0) return 0;
return ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode