> For the complete documentation index, see [llms.txt](https://anton-veselskyi.gitbook.io/codding-problems-solutions/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anton-veselskyi.gitbook.io/codding-problems-solutions/leetcode/easy/reverse-integer.md).

# Reverse Integer

## [Reverse Integer](https://leetcode.com/problems/reverse-integer)

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

**Note:**\
&#x20;Assume we are dealing with an environment that could only store integers within the 32-bit signed integer range: \[−231,  231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

**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`

## Solutions

### 🧠 Cpp

```cpp
class Solution {
public:
    int reverse(int x)
    {
        bool is_neg = x < 0;
        std::string num = std::to_string(x);
        std::reverse(num.begin()+is_neg, num.end());

        long res = std::atol(num.c_str());
        return res > numeric_limits<int>::max() || res < numeric_limits<int>::min() ? 
               0  : res;
    }
};
```
