zoukankan      html  css  js  c++  java
  • 字典树实现

    字典树,又称单词查找树,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
  • 相关阅读:
    MongoDB 删除文档
    MongoDB 删除文档
    C#标记 [已弃用] 的方法
    C#标记 [已弃用] 的方法
    MySQL 正则表达式
    MySQL 正则表达式
    SQLcase when then用法
    SQLcase when then用法
    衣服尺码自定义排序sql
    衣服尺码自定义排序sql
  • 原文地址:https://www.cnblogs.com/coloz/p/11892067.html
Copyright © 2011-2022 走看看