class TrieNode { constructor(val) { this.val = val; this.children = {}; this.isWord = false; } } class Trie { constructor() { this.root = new TrieNode(); } insert(str) { let current = this.root; for (const char of str) { if (!(char in current.children)) { current.children[char] = new TrieNode(char); } current = current.children[char]; } current.isWord = true; } search(str) { let current = this.root; for (const char of str) { if (!(char in current.children)) { return false; } current = current.children[char]; } return current.isWord; } } const trie = new Trie(); trie.insert('john'); trie.insert('smith'); console.log(trie.search('john')); // true console.log(trie.search('smith')); // true console.log(trie.search('johny')); // false console.log(trie.search('Tesla')); // false console.log(trie.search('John')); // false
Categories