字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。
class Trie(object):
def __init__(self):
"""
Initialize your data structure here.
"""
self.data={}
def insert(self, word):
"""
Inserts a word into the trie.
:type word: str
:rtype: None
"""
tree=self.data
for i in word:
if i not in tree:
tree[i]={}
tree=tree[i]
tree['#']='#'
def search(self, word):
"""
Returns if the word is in the trie.
:type word: str
:rtype: bool
"""
tree=self.data
for i in word:
if i in tree:
tree=tree[i]
else:
return False
if '#' in tree:
return True
else:
return False
def startsWith(self, prefix):
"""
Returns if there is any word in the trie that starts with the given prefix.
:type prefix: str
:rtype: bool
"""
tree=self.data
for i in prefix:
if i in tree:
tree=tree[i]
else:
return False
return True