deno.land / x / masx200_leetcode_test@10.6.5 / fraction-addition-and-subtraction / index.ts

نووسراو ببینە
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
import { greatestCommonDivisor } from "../max-points-on-a-line/greatest_common_divisor.ts";import { deduplication } from "./deduplication.ts";import { Fraction } from "./Fraction.ts";import { parseFraction } from "./parseFraction.ts";import { FractionToString } from "./Fraction.ts";export function fractionAdd(fractions: Fraction[]): Fraction { const denominator = deduplication( fractions.map((f) => f.denominator), ).reduce((a, b) => a * b); const molecular = fractions .map((f) => (f.sign * f.molecular * denominator) / f.denominator) .reduce((a, b) => a + b);
return new Fraction({ denominator: denominator, molecular: molecular, });}export function simplifyFraction(fraction: Fraction) { const { molecular, denominator } = fraction; const gcd = greatestCommonDivisor(molecular, denominator); return new Fraction({ sign: fraction.sign, denominator: fraction.denominator / gcd, molecular: fraction.molecular / gcd, });}function fractionAddition(expression: string): string { const fractions = parseFraction(expression);
return FractionToString( simplifyFraction(fractionAdd(fractions)), );}export default fractionAddition;
masx200_leetcode_test

Version Info

Tagged at
3 years ago