LeetCode-208.Implement Trie (Prefix Tree)
来源:互联网 发布:国内网络婚纱品牌排行 编辑:程序博客网 时间:2024/05/20 20:18
https://leetcode.com/problems/implement-trie-prefix-tree/
Implement a trie with insert
, search
, and startsWith
methods.
Note:
You may assume that all inputs are consist of lowercase letters a-z
.
class TrieNode{public:// Initialize your data structure here.TrieNode *children[26];bool isWord;TrieNode(){isWord = false;for (auto &node : children)node = NULL;}};class Trie{public:Trie(){root = new TrieNode();}// Inserts a word into the trie.void insert(string word){TrieNode *node = root;for (char c : word){if (!node->children[c - 'a'])node->children[c - 'a'] = new TrieNode();node = node->children[c - 'a'];}node->isWord = true;}// Returns if the word is in the trie.bool search(string word) {TrieNode *node = root;for (char c : word){if (!node->children[c - 'a'])return false;node = node->children[c - 'a'];}return node->isWord;}// Returns if there is any word in the trie// that starts with the given prefix.bool startsWith(string prefix){TrieNode *node = root;for (char c : prefix){if (!node->children[c - 'a'])return false;node = node->children[c - 'a'];}return true;}private:TrieNode* root;};// Your Trie object will be instantiated and called as such:// Trie trie;// trie.insert("somestring");// trie.search("key");
相关链接
hihocoder:http://hihocoder.com/problemset/problem/1014
#include <string>#include <iostream>using namespace std;struct TrieNode{TrieNode *children[26];int count;TrieNode(){count = 1;for (auto &node : children)node = NULL;}};TrieNode* root;void insert(string word){ TrieNode *node = root; for (char c : word) { if (!node->children[c - 'a']) node->children[c - 'a'] = new TrieNode(); else node->children[c - 'a']->count++; node = node->children[c - 'a']; }}int startsWith(string prefix){ TrieNode *node = root; for (char c : prefix) { if (!node->children[c - 'a']) return 0; node = node->children[c - 'a']; } return node->count;}int main(){ root = new TrieNode(); int n, m; string word; cin >> n; for (int i = 0; i<n; i++) { cin >> word; insert(word); } cin >> m; for (int i = 0; i<m; i++) { cin >> word; cout << startsWith(word) << endl; } return 0;}
0 0
- LeetCode 208. Implement Trie (Prefix Tree)
- Leetcode 208. Implement Trie (Prefix Tree)
- 208. Implement Trie (Prefix Tree) LeetCode
- 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)
- [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)
- leetcode 208. Implement Trie (Prefix Tree)
- 算发导论第五章部分课后习题
- 图像处理中二次曲线拟合
- Android Animation学习 实现 IOS 滤镜退出动画
- warning: incompatible implicit declaration of built-in function ‘exit’
- elasticsearch 2.3.4 java API 连接,ik分词器,设置集群节点,创建index,mapping的几种方式
- LeetCode-208.Implement Trie (Prefix Tree)
- 机器学习实战1:朴素贝叶斯模型:文本分类+垃圾邮件分类
- Looper Handler MessageQueue Message 探究
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- Android — 如何创建和修改 fragment 及相关注意事项
- Android Activity各启动模式的差异
- Swift基础(十)协议的委托代理
- 机器学习实战2:关联规则:议会投票+毒蘑菇
- [hihoCoder太阁最新面经算法竞赛8]B.Dice Possibility