LeetCode刷题笔记 7. 整数反转 【溢出】

1

画解算法:7. 整数反转

class Solution {
public: 
    int reverse(int x) {
        int ans = 0;
        while (x != 0) {
            int pop = x % 10;
            if (ans > INT_MAX / 10 || (ans == INT_MAX / 10 && pop > 7)) //或 pop > INT_MAX % 10 
                return 0;
            if (ans < INT_MIN / 10 || (ans == INT_MIN / 10 && pop < -8)) //或 pop < INT_MIN % 10
                return 0;
            ans = ans * 10 + pop;
            x /= 10;
        }
        return ans;
    }
};

LeetCode刷题笔记 7. 整数反转 【溢出】_第1张图片

2

class Solution {
public:
    int reverse(int x) {
        int y = 0;
        while (x != 0) {
            if (y > INT_MAX / 10 || y < INT_MIN / 10) {
                return 0;
            }
            y = y * 10 + x % 10;
            x = x / 10;
        }
        return y;
    }
};

你可能感兴趣的:(Leetcode)