Fraction to Recurring Decimal LeetCode solution in Java

1
class Solution {
2
public String fractionToDecimal(int numerator, int denominator) {
3
if (numerator == 0) {
4
return "0";
5
}
6

7
StringBuilder sb = new StringBuilder("");
8
if (numerator < 0 && denominator > 0 || numerator > 0 && denominator < 0) {
9
sb.append("-");
10
}
11

12
long divisor = Math.abs((long) numerator);
13
long dividend = Math.abs((long) denominator);
14
long remainder = divisor % dividend;
15
sb.append(divisor / dividend);
16

17
if (remainder == 0) {
18
return sb.toString();
19
}
20
sb.append(".");
21
HashMap<Long, Integer> map = new HashMap<Long, Integer>();
22
while (remainder != 0) {
23
if (map.containsKey(remainder)) {
24
sb.insert(map.get(remainder), "(");
25
sb.append(")");
26
break;
27
}
28
map.put(remainder, sb.length());
29
remainder *= 10;
30
sb.append(remainder / dividend);
31
remainder %= dividend;
32
}
33
return sb.toString();
34
}
35
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0