Fraction to Recurring Decimal LeetCode solution in Python

1
from collections import defaultdict
2

3

4
class Solution:
5
def fractionToDecimal(self, numerator: int, denominator: int) -> str:
6
sign = "" if numerator * denominator >= 0 else "-"
7
numerator, denominator = abs(numerator), abs(denominator)
8
a = numerator // denominator
9
numerator %= denominator
10
if not numerator:
11
return sign + str(a)
12
fractions = []
13
index = defaultdict(int)
14
while 10 * numerator not in index:
15
numerator *= 10
16
index[numerator] = len(fractions)
17
fractions.append(str(numerator // denominator))
18
numerator %= denominator
19
i = index[10 * numerator]
20
return (
21
sign
22
+ str(a)
23
+ "."
24
+ "".join(fractions[:i])
25
+ "("
26
+ "".join(fractions[i:])
27
+ ")"
28
if numerator
29
else sign + str(a) + "." + "".join(fractions[:i])
30
)

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0