LeetCode 208 - Implement Trie (Prefix Tree)
来源:互联网 发布:外汇的算法 编辑:程序博客网 时间:2024/05/30 04:18
一、问题描述
Implement a trie with insert, search, and startsWith methods.
You may assume that all inputs are consist of lowercase letters a-z
.
二、解题报告
什么是trie树,trie树有哪些应用,怎么实现trie树,请看《Trie树的应用与实现》。
直接上代码:
class TrieNode {public: bool iskey; // 标记该节点是否代表关键字 TrieNode *children[26]; // 各个子节点 TrieNode() { iskey = false; for(int i=0; i<26; ++i) children[i] = NULL; }};class Trie {public: Trie() { root = new TrieNode(); } // 插入一个单词到trie树中 void insert(string s) { TrieNode* node = root; for(int i=0; i<s.size(); ++i) { if(node->children[s[i]-'a'] == NULL) { node->children[s[i]-'a'] = new TrieNode(); } node = node->children[s[i]-'a']; } node->iskey = true; } // 搜索关键字key是否在trie树中 bool search(string key) { TrieNode* node = root; for(int i=0; i<key.size(); ++i) if(node!=NULL) node = node->children[key[i]-'a']; else break; if(node == NULL) return false; else return node->iskey; } // 判断trie树中是否有以prefix为前缀的单词 bool startsWith(string prefix) { TrieNode* node = root; for(int i=0; i<prefix.size(); ++i) if(node!=NULL) node = node->children[prefix[i]-'a']; else break; if(node == NULL) return false; else return true; }private: TrieNode* root;};
LeetCode答案源代码:https://github.com/SongLee24/LeetCode
0 0
- leetcode:Trie:Implement Trie (Prefix Tree)(208)
- LeetCode 208 - Implement Trie (Prefix Tree)
- Leetcode 208: Implement Trie (Prefix Tree)
- Leetcode NO.208 Implement Trie (Prefix Tree)
- LeetCode 208: Implement Trie (Prefix Tree)
- LeetCode-208 Implement Trie (Prefix Tree)
- LeetCode 208 Implement Trie (Prefix Tree)
- LeetCode 208 Implement Trie (Prefix Tree)
- LeetCode(208)Implement Trie (Prefix Tree)
- [LeetCode 208] Implement Trie (Prefix Tree)
- [leetcode-208]Implement Trie (Prefix Tree)(java)
- leetcode 208: Implement Trie (Prefix Tree)
- LeetCode 208 Implement Trie (Prefix Tree)
- leetcode-208-Implement Trie (Prefix Tree)
- LeetCode 208: Implement Trie (Prefix Tree)
- leetcode[208]:Implement Trie (Prefix Tree)
- LeetCode 208 Implement Trie (Prefix Tree)
- LeetCode[208] Implement Trie (Prefix Tree)
- java 死锁及避免死锁
- Android实现自定义AlertDialog的自下向上的动画效果(并消除dialog边框)
- Test
- 自制操作系统-最简单的系统hello World
- data-type,data-value
- LeetCode 208 - Implement Trie (Prefix Tree)
- HTML+css+JavaScript
- GridView分页的实现以及自定义分页样式功能实例
- vim 的:x和:wq
- Symetrict Tree / Same Tree - LeetCode
- Angularjs - 用Controller as 代替 $scope
- max/min Depth of Binary Tree - LeetCode
- poj 1155 TELE(树型DP)
- Windows Server 2008 R2常规设置及基本安全策略