[LeetCode] 208. Implement Trie (Prefix Tree)
Posted simplepaul
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] 208. Implement Trie (Prefix Tree)相关的知识,希望对你有一定的参考价值。
Implement a trie with insert
, search
, and startsWith
methods.
Example:
Trie trie = new Trie(); trie.insert("apple"); trie.search("apple"); // returns true trie.search("app"); // returns false trie.startsWith("app"); // returns true trie.insert("app"); trie.search("app"); // returns true
Note:
- You may assume that all inputs are consist of lowercase letters
a-z
. - All inputs are guaranteed to be non-empty strings.
class TrieNode public: TrieNode *child[26]; bool isWord; TrieNode(): isWord(false) for (auto &a : child) a = nullptr; ; class Trie public: /** Initialize your data structure here. */ Trie() root = new TrieNode(); /** Inserts a word into the trie. */ void insert(string word) TrieNode *p = root; for (auto & iter : word) int i = iter - ‘a‘; if (!p->child[i]) p->child[i] = new TrieNode(); p = p->child[i]; else p = p->child[i]; p->isWord = true; /** Returns if the word is in the trie. */ bool search(string word) TrieNode *p = root; for (auto & iter : word) int i = iter - ‘a‘; if (p->child[i]) p = p->child[i]; else return false; return (p->isWord); /** Returns if there is any word in the trie that starts with the given prefix. */ bool startsWith(string prefix) TrieNode *p = root; for (auto & iter : prefix) int i = iter - ‘a‘; if (p->child[i]) p = p->child[i]; else return false; return true; private: TrieNode* root; ; /** * Your Trie object will be instantiated and called as such: * Trie* obj = new Trie(); * obj->insert(word); * bool param_2 = obj->search(word); * bool param_3 = obj->startsWith(prefix); */
以上是关于[LeetCode] 208. Implement Trie (Prefix Tree)的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode] 208. Implement Trie (Prefix Tree)
leetcode No208. Implement Trie (Prefix Tree)
[LeetCode] 208(LintCode). Implement Trie(Prefix Tree)
LeetCode 208. Implement Trie (Prefix Tree)