-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path0007_Reverse_Integer.py
More file actions
44 lines (42 loc) · 1.46 KB
/
0007_Reverse_Integer.py
File metadata and controls
44 lines (42 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class Solution:
def reverse(self, x: int) -> int:
isNegative = False
str_x = ""
if x < 0:
isNegative = True
str_x = str(x*-1)
else:
str_x = str(x)
str_sol = []
for each_str_x in reversed(str_x):
str_sol.append(each_str_x)
if isNegative:
str_sol = ['-'] + str_sol
l_min_str = str(-1*(2**31))
if len(str_sol) < len(l_min_str):
return int(''.join(str_sol))
elif len(str_sol) == len(l_min_str):
for each_sol, each_l_min in zip(str_sol[1:], l_min_str[1:]):
if each_l_min < each_sol:
return 0
elif each_l_min == each_sol:
continue
else:
return int(''.join(str_sol))
else:
return 0
else:
str_sol = str_sol
l_max_str = str(2**31 - 1)
if len(str_sol) < len(l_max_str):
return int(''.join(str_sol))
elif len(str_sol) == len(l_max_str):
for each_sol, each_l_max in zip(str_sol, l_max_str):
if each_l_max < each_sol:
return 0
elif each_l_max == each_sol:
continue
else:
return int(''.join(str_sol))
else:
return 0