码迷,mamicode.com
首页 > 编程语言 > 详细

python数据结构与算法——字典树

时间:2015-07-31 23:21:08      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:

 1 class TrieTree():
 2     def __init__(self):
 3         self.root = {}
 4     
 5     def addNode(self,str):
 6         # 树中每个结点(除根节点),包含到该结点的单词数,以及该结点后面出现字母的键
 7         nowdict = self.root
 8         for i in range(len(str)):
 9             if str[i] not in nowdict:    # 发现新的组合方式
10                 nowdict[str[i]] = {count:0,prefix:str[:i+1]}
11             nowdict = nowdict[str[i]]    # 转移到下一个结点
12         nowdict[count] += 1
13     
14     def countWord(self,str):
15         # 返回输入单词在树中出现的次数
16         nowdict = self.root
17         for s in str:
18             if s not in nowdict:
19                 return 0
20             nowdict = nowdict[s]    # 匹配当前结点,转下一个结点
21         # 到了这一步证明单词存在
22         return nowdict[count]
23 
24 
25 
26 
27 
28 if __name__=="__main__":
29     pass
30     Text = [b,abc,abd,bcd,abcd,efg,hii,bcd]
31     t = TrieTree()
32     for str in Text:
33         t.addNode(str)
34     print t.countWord(bcd)
35 
36 >>> 2

参考:http://blog.csdn.net/v_july_v/article/details/6897097

 

python数据结构与算法——字典树

标签:

原文地址:http://www.cnblogs.com/hanahimi/p/4693191.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!