7. Reverse Integer

1. Description

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

2. Note

Assume we are dealing with an environment that 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.

3. Example

Example 1:
Input: x = 123
Output: 321

Example 2:
Input: x = -123
Output: -321

Example 3:
Input: x = 120
Output: 21

Example 4:
Input: x = 0
Output: 0

4. Constraints

  • $−2^{31}$ <= x <= $2^{31}$ - 1

5. Solutions

My Accepted Solution(Follow Up)

Time complexity: O(1)
Space complexity: O(1)

class Solution {
public:
    int reverse(int num) {
        int reversed_num = 0;
        while(num != 0) {
            if(abs(reversed_num) <= INT_MAX / 10) {
                reversed_num = reversed_num * 10 + num % 10;
                num /= 10;
            } else {
                return 0;
            }
        }

        return reversed_num;
    }
};
Last updated:
Tags: Math
comments powered by Disqus