トライはプレフィックス ツリーとも呼ばれ、文字列の保存と取得に使用される効率的なツリー状のデータ構造です。これは、文字列検索、プレフィックス マッチング、オートコンプリート機能を含むタスクに特に役立ちます。
トライは、次のことが必要なシナリオに最適です。
「猫」、「車」、「犬」という単語を含むトライを視覚化してみましょう:
root / | \ c d ... / | a o / \ | t r g
各ノードは文字を表し、ルート ノードからリーフ ノードまでのパスが完全な単語を形成します。
JavaScript で基本的なトライ構造を実装してみましょう:
class TrieNode { constructor() { this.children = {}; this.isEndOfWord = false; } } class Trie { constructor() { this.root = new TrieNode(); } // Insert a word into the trie insert(word) { let node = this.root; for (let char of word) { if (!node.children[char]) { node.children[char] = new TrieNode(); } node = node.children[char]; } node.isEndOfWord = true; } // Search for a word in the trie search(word) { let node = this.root; for (let char of word) { if (!node.children[char]) { return false; } node = node.children[char]; } return node.isEndOfWord; } // Check if any word starts with the given prefix startsWith(prefix) { let node = this.root; for (let char of prefix) { if (!node.children[char]) { return false; } node = node.children[char]; } return true; } } // Example usage const trie = new Trie(); // Insert words trie.insert("apple"); trie.insert("app"); trie.insert("banana"); console.log(trie.search("apple")); // Output: true console.log(trie.search("app")); // Output: true console.log(trie.search("appl")); // Output: false console.log(trie.startsWith("app")); // Output: true console.log(trie.startsWith("ban")); // Output: true console.log(trie.startsWith("cat")); // Output: false
このチュートリアルが気に入った場合は、@turckaliciousのX/Twitterで私をフォローしてください。この記事は、Wonderfall (https://wonderfall.xyz) の助けを借りて作成されました。Wonderfall は、調査、執筆、反復作業を迅速に行うのに役立つ、AI を活用した対話型ドキュメント エディターです。
以上が文字列検索についての知識はすべて忘れてください - 試してみるとびっくりします!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。