字典树
定义
简单来说,字典树就是将 大量的字符串 用树的形式存储起来,这种存储结构适用于查询多。具体实例
解析
实现
class Trie:
def __init__(self):
self.childern = [None for i in range(26)]
self.isEnd = False
def insert(self, word: str) -> None:
node = self
for ch in word:
ch = ord(ch) - 97 # 97 为ord("a")
if not node.childern[ch]:
node.childern[ch] = Trie()
node = node.childern[ch]
node.isEnd = True
# 定义一个查找前缀的函数,方便下面的实现
def searchPrefix(self, prefix: str) -> "Trie":
node = self
for ch in prefix:
ch = ord(ch) - 97 # 97 为ord("a")
if not node.childern[ch]:
return None
node = node.childern[ch]
return node
def search(self, word: str) -> bool:
node = self.searchPrefix(word)
return node is not None and node.isEnd
def startsWith(self, prefix: str) -> bool:
node = self.searchPrefix(prefix)
return node is not None
ix(prefix)
return node is not None