-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathsol.py
34 lines (27 loc) · 991 Bytes
/
sol.py
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
from typing import Counter, List
class Solution:
def fractionToDecimal(self, numerator: int, denominator: int) -> str:
sign = "-" if numerator * denominator < 0 else ""
numerator = abs(numerator)
denominator = abs(denominator)
intValue = numerator // denominator
if intValue * denominator == numerator:
return sign + str(intValue)
floats = []
remianders = {}
left = numerator % denominator
while left:
if left in remianders:
floats.insert(remianders[left], "(")
floats.append(")")
break
remianders[left] = len(floats)
left *= 10
unit = left // denominator
left = left % denominator
floats.append(str(unit))
final_num = str(intValue) + "." + "".join(floats)
return sign + final_num
s = Solution()
res = s.fractionToDecimal(-214748, 1)
print(res)