# 7. Reverse Integer

Given a 32-bit signed integer, reverse digits of an integer.

Example 1:

Input: 123
Output: 321

Example 2:

Input: -123
Output: -321

Example 3:

Input: 120
Output: 21

Note: Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−2^31, 2^31 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

# Solution

Approach 1: Pop and Push Digits & Check before Overflow.

# Code (Python)

Approach 1:

# Code (C++)

Approach 1:

class Solution {
public:
    int reverse(int x) {
        int res = 0;
        while (x != 0) // need to consider both positive and negative numbers.
        {
            int r = x % 10;
            if (res > INT_MAX / 10 || (res == INT_MAX / 10 && r > INT_MAX % 10)) return 0;
            if (res < INT_MIN / 10 || (res == INT_MIN / 10 && r < INT_MIN % 10)) return 0;
            res = res * 10 + r;
            x = x / 10;
        }
        return res;
    }
};