class Trie:
def __init__(self):
self.children = [None] * 26
self.isEnd = False
def searchPrefix(self, prefix):
node = self
for ch in prefix:
ch = ord(ch) - ord("a")
if not node.children[ch]:
return None
node = node.children[ch]
return node
# 根据插入的word构造字典树
def insert(self, word):
node = self
for ch in word:
ch = ord(ch) - ord("a")
if not node.children[ch]:
node.children[ch] = Trie()
node = node.children[ch]
node.isEnd = True
def search(self, word):
node = self.searchPrefix(word)
return node is not None and node.isEnd
def startsWith(self, prefix):
return self.searchPrefix(prefix) is not None
LeetCode 208 实现 Trie (前缀树)
字典树实现前缀搜索与查找
最新推荐文章于 2025-12-06 07:43:37 发布
这个博客介绍了字典树(Trie)的数据结构及其应用。通过`searchPrefix`方法实现前缀搜索,`insert`方法用于插入单词构建字典树,而`search`和`startsWith`方法分别检查字典树中是否存在完整单词和是否以指定前缀开始。字典树在字符串查找和数据压缩等领域有广泛应用。
505

被折叠的 条评论
为什么被折叠?



