LeetCoder 7. Reverse Integer

来源:互联网 发布:西文数据库 编辑:程序博客网 时间:2024/06/15 05:35

题意

给你一个32位的整数,有可能为负数,然后将数字倒转,输出新的数字,如果新的数字超出32位的整数,输出0.

思路

考虑到整数反转有可能溢出,所以说使用64位的longlong来存储,需要注意,对x 进行取绝对值有可能会溢出,所以说使用无符号的整型来存储.

结果

Your runtime beats 88.41 % of cpp submissions

代码

class Solution {public:    int reverse(int x) {        int flag = x >= 0 ? 0 : 1;        unsigned int y = abs(x);        long long ans = 0;        while(y != 0){            ans = ans * 10 + y % 10;            y /= 10;        }        if(flag != 0)            ans = -ans;        if(ans > 2147483647 || ans < -2147483647)             return 0;        else            return ans;    }};
0 0