实现Trie树-Python

复制代码
# 实现Trie树: 字典套字典
class Trie():
    def __init__(self):
        self.child = {}
    
    def insert(self, word):
        current_node = self.child
        for e in word:
            if e not in current_node:
                current_node[e] = {}
            current_node = current_node[e]
        # 插入单词结束时,给以value为'*'的标志位
        current_node['*'] = '*'
    
    def search(self, word):
        current_node = self.child
        for e in word:
            if e not in current_node:
                return False
            current_node = current_node[e]
            
        return '*' in current_node
    
    def startswith(self, prefix):
        current_node = self.child
        for e in prefix:
            if e not in current_node:
                return False
            current_node = current_node[e]
        return True
    
    
trie = Trie()
trie.insert("apple")
trie.insert("app")
trie.search("ao")
trie.startswith('apllea')
复制代码

 

posted @   今夜无风  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2017-11-30 JavaScript学习11.30
点击右上角即可分享
微信分享提示