LeetcodeProblem7 Reverse Integer解题报告

来源:互联网 发布:软件开发报告模板 编辑:程序博客网 时间:2024/06/05 02:13

这一题主要是边界的控制,自己没想出什么好办法,就是用long long型res,来比较int32型的最大值,如果结果大于int32的max,则返回0,否则返回res。

看到leetcode上提供的解法,结果res为int32型,每次循环时累计计算后,判断(res-余数)/10是否==0,如果不是,说明溢出,则返回0,否则继续循环,最后返回。

我的代码:

int reverse(int x) {int maxInt = INT_MAX;if (x > maxInt||x<-maxInt) return 0;long long  res=0;vector<int> numarray;while (x!=0){numarray.push_back(x % 10);x = x / 10;}int len = numarray.size()-1;for (auto num : numarray){res += num*pow(10, len);len--;if (res > maxInt || res<-maxInt) return 0;}return res;}
leetocde上提供的:

int reverse(int x) {        int result = 0;        while(x!=0){            int tail = x%10;            int newResult = result*10+tail;            if((newResult-tail)/10 != result){                return 0;;            }            result = newResult;            x = x/10;        }        return result;            }




原创粉丝点击