码迷,mamicode.com
首页 > 其他好文 > 详细

刷题208. Implement Trie (Prefix Tree)

时间:2020-04-04 18:36:12      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:int   with   size   Fix   eof   next   tar   vat   nod   

一、题目说明

题目208. Implement Trie (Prefix Tree),实现trie,包括insert、search、startsWith。

二、我的解答

Trie树,又叫“字典树”,“前缀树”。实现代码如下:

class Trie{
	public:
		Trie(){
			isEnd = false;
			memset(next,0,sizeof(next)); 
		}
		~Trie(){
			for(int i=0;i<26;i++){
				if(next[i] == NULL){
					continue;
				}else{
					delete(next[i]);
					next[i] = NULL;
				}
			}
		}
		void insert(string word){
			Trie* node = this;
			for(char c: word){
				int cur = c - ‘a‘;
				if(node->next[cur] == NULL){
					node->next[cur] = new Trie();
				}
				node = node->next[cur];
			}
			node->isEnd = true;
		}
		bool search(string word){
			Trie* node = this;
			for(char c: word){
				int cur = c - ‘a‘;
				node = node->next[cur];
				if(node == NULL){
					return false;
				}
			}
			return node->isEnd;
		}
		
		bool startsWith(string prefix){
			Trie* node = this;
			for(char c: prefix){
				int cur = c - ‘a‘;
				node = node->next[cur];
				if(node == NULL){
					return false;
				}
			}
			return true;
		}

	private:
		bool isEnd;
		Trie* next[26];
};

性能如下:

Runtime: 84 ms, faster than 54.43% of C++ online submissions for Implement Trie (Prefix Tree).
Memory Usage: 45.9 MB, less than 20.00% of C++ online submissions for Implement Trie (Prefix Tree).

三、优化措施

刷题208. Implement Trie (Prefix Tree)

标签:int   with   size   Fix   eof   next   tar   vat   nod   

原文地址:https://www.cnblogs.com/siweihz/p/12290880.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!