# GeetCode Hub

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`

public int Reverse(int x) { var number = x.ToString(); var isNegative = number[0] == '-'; if (isNegative) number = number.Substring(1); var charArray = number.ToCharArray(); Array.Reverse(charArray, 0, number.Length); long converted = Convert.ToInt64(new string(charArray)); if ((!isNegative && converted > int.MaxValue) || (isNegative && (-1 * converted) < int.MinValue) ) return 0; return isNegative ? (int)(-1 * converted) : (int)converted; }

This is a tricky question as we need to keep track of the number if it is getting exceeded to the given range or not. once to get the concept it is very easy to code.

Time Complexity: O(d)  // where d is the digits in the number

Space Complexity: O(1) //We are just taking extra variables to store the result which are independent of input.

Medium
Easy