Описание:
Три (произносится как «попробуй») или дерево префикса – это структура данных дерева, используемая для эффективного хранения и извлечения клавиш в наборе данных строк. Существуют различные приложения этой структуры данных, такие как автозаполнение и проверка орфографии.
Внедрить класс Trie:
Trie () инициализирует объект Trie. void вставка (строковое слово) Вставьте струнное слово в три. логический поиск (строковое слово) Возвращает True, если струнное слово находится в Trie (то есть было вставлено ранее), и false в противном случае. Boolean Startswith (String Prefix) Возвращает True, если есть ранее вставленное строковое слово, которое имеет префикс префикс, и false в противном случае.
/**
* Initialize your data structure here.
*/
var Trie = function() {
this.root = {};
};
/**
* Inserts a word into the trie.
* @param {string} word
* @return {void}
*/
Trie.prototype.insert = function(word) {
let node = this.root;
for(let letter of word) {
if (node[letter] === undefined) node[letter] = {};
node = node[letter]
}
node.isEnd = true;
};
/**
* Returns if the word is in the trie.
* @param {string} word
* @return {boolean}
*/
Trie.prototype.search = function(word) {
let node = this.root
for(let letter of word) {
// check if current letter is in the node
if(!node[letter]) {
return false;
} else {
node = node[letter];
}
}
return node && node.isEnd === true;
};
/**
* Returns if there is any word in the trie that starts with the given prefix.
* @param {string} prefix
* @return {boolean}
*/
Trie.prototype.startsWith = function(prefix) {
let node = this.root;
for(let letter of prefix) {
if(!node[letter]) {
return false;
} else {
node = node[letter];
}
}
return true;
};
Оригинал: “https://dev.to/cod3pineapple/leetcode-208-implement-trie-prefix-tree-javascript-solution-3l5m”