本文实例讲述了Python数据结构与算法之字典树实现方法。分享给大家供大家参考,具体如下:
class TrieTree(): def __init__(self): self.root = {} def addNode(self,str): # 树中每个结点(除根节点),包含到该结点的单词数,以及该结点后面出现字母的键 Nowdict = self.root for i in range(len(str)): if str[i] not in Nowdict: # 发现新的组合方式 Nowdict[str[i]] = {'count':0,'prefix':str[:i+1]} Nowdict = Nowdict[str[i]] # 转移到下一个结点 Nowdict['count'] += 1 def countWord(self,str): # 返回输入单词在树中出现的次数 Nowdict = self.root for s in str: if s not in Nowdict: return 0 Nowdict = Nowdict[s] # 匹配当前结点,转下一个结点 # 到了这一步证明单词存在 return Nowdict['count'] if __name__=="__main__": pass Text = ['b','abc','abd','bcd','abcd','efg','hii','bcd'] t = TrieTree() for str in Text: t.addNode(str) print t.countWord('bcd') >>> 2
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。