deno.land / x / masx200_leetcode_test@10.6.5 / sum-of-prefix-scores-of-strings / 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
37
38
import { TrieNode } from "../implement-trie-ii-prefix-tree/TrieNode.ts";import { TrieNodeInsert } from "../implement-trie-ii-prefix-tree/TrieNodeInsert.ts";import { PrefixTreeSearchPrefix } from "../implement-trie-prefix-tree/PrefixTreeSearchPrefix.ts";function sumPrefixScores(words: string[]): number[] { const root = new TrieNode(); for (const word of words) { TrieNodeInsert(root, word); } const word2sum = new Map<string, number>(); return words.map((word) => { const sum = word2sum.get(word) ?? TrieNodeSum(root, word, word2sum); word2sum.set(word, sum); return sum; });}export default sumPrefixScores;
function TrieNodeSum( root: TrieNode, word: string, word2sum: Map<string, number>,): number { let sum = 0; let index = 0; PrefixTreeSearchPrefix(root, word, { each(node) { if (index) { sum += node.prefixCount; if (node.wordCount) { word2sum.set(word.slice(0, index), sum); } } index++; }, }); return sum;}
masx200_leetcode_test

Version Info

Tagged at
a year ago