Leetcode #7 Reverse Integer

Posted by blueskyson on February 26, 2021

Description

Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0.

Assume the environment does not allow you to store 64-bit integers (signed or unsigned).

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

Constraints:

-231 <= x <= 231 - 1

Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
    int reverse(int x) {
        int ret = 0;
        bool neg = (x < 0 ? true : false);
        while (x >= 10 || x <= -10) {
            ret = ret * 10 + x % 10;
            x /= 10;
        }
        if (ret < -214748364 || (ret == -214748364 && x < -8)) {
            return 0;
        } else if (ret > 214748364 || (ret == 214748364 && x > 7)) {
            return 0;
        }
        ret = ret * 10 + x % 10;
        return ret;
    }
};

Runtime: 0 ms, faster than 100.00% of C++ online submissions for Reverse Integer.

Memory Usage: 5.9 MB, less than 60.93% of C++ online submissions for Reverse Integer.