Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit eac3e81

Browse files
appleJaxtrekhleb
authored andcommitted
Fix TrieNode.addChild so substrings get marked as complete words (trekhleb#177)
1 parent 872a38f commit eac3e81

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

‎src/data-structures/trie/TrieNode.js‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@ export default class TrieNode {
2929
this.children.set(character, new TrieNode(character, isCompleteWord));
3030
}
3131

32-
return this.children.get(character);
32+
const childNode = this.children.get(character);
33+
childNode.isCompleteWord = childNode.isCompleteWord || isCompleteWord;
34+
35+
return childNode;
3336
}
3437

3538
/**

‎src/data-structures/trie/__test__/Trie.test.js‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,14 @@ describe('Trie', () => {
4141

4242
trie.addWord('cat');
4343
trie.addWord('cats');
44+
trie.addWord('carpet');
4445
trie.addWord('car');
4546
trie.addWord('caption');
4647

4748
expect(trie.doesWordExist('cat')).toBe(true);
4849
expect(trie.doesWordExist('cats')).toBe(true);
50+
expect(trie.doesWordExist('carpet')).toBe(true);
51+
expect(trie.doesWordExist('car')).toBe(true);
4952
expect(trie.doesWordExist('cap')).toBe(false);
5053
expect(trie.doesWordExist('call')).toBe(false);
5154
});

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /