您的位置:首页 > 其它

leetcode之Reverse Integer

2018-04-01 14:17 232 查看
思路:
    1、考虑正负号

    2、使用ArrayList,%,/实现逆序

    3、如何检测是否溢出(还要考虑逆序后可能溢出的情况)。检测溢出:如果加数为正,加的结果比原来小,或者加数为负,加的结果比原来大,那么就是溢出了。
犯的错误:
    1、没有正确考虑溢出

    2、逻辑符号用错
代码:class Solution {
public int reverse(int x) {

if(x==0) return 0;

if(x>Math.pow(2, 31)||x<-Math.pow(2, 32))return 0;

List<Integer> ls=new ArrayList<Integer>();
int k=-1;
while(x!=0) {
k=x%10;
x=x/10;
ls.add(k);
}

int result=0;
for(int i=ls.size();i>0;i--) {
int a=(int) (ls.get(ls.size()-i)*Math.pow(10, (i-1)));
int sum=result+a;

if(a>0&&sum<result)return 0;
if(a<0&&sum>result)return 0;
result=sum;
}

return result;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: