LeetCode 0007

来源:互联网 发布:微信加粉软件 编辑:程序博客网 时间:2024/06/03 09:26

原题链接

我的解法:

直接转置即可

class Solution {public:    int reverse(int x) {        const int max = 0x7fffffff;        const int min = 0x80000000;        long long res = 0;        while(x) {            res *= 10;            res += (x % 10);            if(res > max || res < min) {                return 0;            }            x /= 10;        }        return res;    }};

最快答案的解法:

大概思路是一致的,不过多了一些预处理

class Solution {public:    int reverse(int x) {        bool isNegative = false;        int revX = 0, temp = x, count=1;        int limitX = 0x7fffffff/10, limitY=0x7fffffff%10;        if (x < 0) {isNegative = true; temp = x * -1;}        while(temp > 0)        {            if ((count == 10) && ((revX > limitX) || ((revX == limitX) && (temp > limitY)))) return 0;            revX = (revX * 10) + temp % 10;            temp = temp/10;            count++;        }        if (isNegative) revX = revX * -1;        return revX;    }};