字典树,又称单词查找树,Trie 树,是一种树形结构,是一种哈希树的变种。
典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。
它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。
以下是代码实现部分
# 字典树 class TrieNode2: def __init__(self): self.childs = dict() # 构建字典 self.is_leaf = False def insert(self, word: str): curr = self for char in word: if char not in curr.childs: curr.childs[char] = TrieNode2() curr = curr.childs[char] curr.is_leaf = True def search(self, word: str): curr = self for char in word: if char not in curr.childs: return False curr = curr.childs[char] return curr.is_leaf ''' 下面是测试代码 ''' trie = TrieNode2() trie.insert("anything") trie.insert("anybody") trie.insert("anybody1") trie.insert("anybody3") print(trie.search("key")) # ->False print(trie.search("anybody1")) # ->True