# Leetcode 筆記 :(7) Reverse Integer
###### tags: `Leetcode`
## 題目
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``
## 思考方向
1. 第一個思考則是直接使用Python 的Str處理
2. 第二則是跟其他語言一樣使用mod運算去處理
## Code
### Solution 1(str)
```python=
class Solution:
def reverse(self, x: int) -> int:
minus = False
if x < 0:
minus = True
x = abs(x)
result = str(x)[::-1]
result = int(result)
if minus == True:
result = -1*result
if result > 2**31 or result < -2**31:
return 0
else:
return result
```
### Solution 2(Mod)
```python=
class Solution:
def reverse(self, x: int) -> int:
minus = False
result = ''
if x < 0:
minus = True
x = abs(x)
if x ==0:
result = '0'
while(x != 0):
tmp = int(x%10)
x = (x-tmp)/10
tmp = str(tmp)
result += tmp
result = int(result)
if minus == True:
result = -1*result
if result > 2**31 or result < -2**31:
return 0
else:
return result
```