Skip to content

Commit 51d5b20

Browse files
Create reverse_integer.py
1 parent 61016be commit 51d5b20

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Leet Code Problem: https://leetcode.com/problems/reverse-integer/
2+
# Modulus and division of negative number shows some unexpected result int(divider/number) and number % -divisor
3+
4+
def divide(number, divider):
5+
return int(number/divider)
6+
7+
def mod(number,divisor):
8+
if number < 0:
9+
return number % -divisor
10+
return number % divisor
11+
12+
MAX_INT = 2 ** 31 -1
13+
MIN_INT = -2 ** 31
14+
15+
def reverse(x):
16+
res = 0
17+
while x:
18+
pop = mod(x,10)
19+
x = divide(x,10)
20+
if res > divide(MAX_INT, 10) or (res == divide(MAX_INT,10) and pop > 7):
21+
return 0
22+
if res < divide(MIN_INT, 10) or (res == divide(MIN_INT,10) and pop < -8):
23+
return 0
24+
res = res * 10 + pop
25+
return res
26+
27+
28+
print(reverse(123))

0 commit comments

Comments
 (0)