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