LeetCode 208. Implement Trie (Prefix Tree)
来源:互联网 发布:混凝土配合比软件 编辑:程序博客网 时间:2024/06/05 08:30
如题所示,要求实现字典树的插入,查找单词,和查找前缀的方法。
Implement a trie with insert
, search
, and startsWith
methods.
Note:
You may assume that all inputs are consist of lowercase letters a-z
.
Subscribe to see which companies asked this question.
需要自己设置一个节点Node。节点中应当包含以下两个部分:
1 isEnd:bool类型的变量,主要判断该结点是否为一个单词。
2 child[26]:指向Node结点的指针,下标0~25分别指向26个字母。
在插入的时候,需要在单词的最后一个字母处,将isEnd设置为true。
在查找单词的时候,除了确定字典树中包含了这个单词以外,还要确定最后一个字母的结点中isEnd为true。
查找前缀则只需要是否每一个字母都出现在字典树中即可。
代码实现如下:
class Node{public:bool isEnd = false;Node* child[26];};class Trie {private:Node* root;public: /** Initialize your data structure here. */ Trie() { root = new Node(); } /** Inserts a word into the trie. */ void insert(string word) { Node *p=root; for(unsigned int i=0;i<word.length();++i){ if(p->child[word[i]-'a'] == NULL){ Node* temp = new Node(); if(i == word.length()-1) temp->isEnd = true; p->child[word[i]-'a']=temp; p=temp; }else{ p = p->child[word[i]-'a']; if(i == word.length()-1) p->isEnd = true; } } } /** Returns if the word is in the trie. */ bool search(string word) { Node *p= root; for(unsigned int i=0;i<word.length();++i){ if(p->child[word[i]-'a'] == NULL) return false; p=p->child[word[i]-'a']; } if(p->isEnd == true) return true; else return false; } /** Returns if there is any word in the trie that starts with the given prefix. */ bool startsWith(string prefix) { Node *p = root; for(unsigned int i=0;i<prefix.length();++i){ if(p->child[prefix[i]-'a'] == NULL) return false; p = p->child[prefix[i]-'a']; } return true; }};
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)
- google API Design Guide
- Feign报错:Attribute 'value' in annotation,must be declared as an @AliasFor [serviceId], not [name]
- 队列的分类与应用场景
- JavaWeb——servlet介绍
- HTML5、CSS3新标签、属性概况
- LeetCode 208. Implement Trie (Prefix Tree)
- 《ACM程序设计》书中题目 O
- 跟踪记录View
- Android 调用系统功能实现图片选择器,你可能会遇到的问题汇总
- 欢迎使用CSDN-markdown编辑器
- WebService基础学习—基础知识
- c 返回排序后的一维数组
- Unity编辑器拓展<一>
- 【程序3】一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?