Описание:
Три (произносится как «попробуй») или дерево префикса – это структура данных дерева, используемая для эффективного хранения и извлечения клавиш в наборе данных строк. Существуют различные приложения этой структуры данных, такие как автозаполнение и проверка орфографии.
Внедрить класс 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”