Python数据结构与算法之字典树实现方法示例


Posted in Python onDecember 13, 2017

本文实例讲述了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使用xlrd模块读写Excel文件的方法
May 06 Python
python中list常用操作实例详解
Jun 03 Python
Python 正则表达式入门(中级篇)
Dec 07 Python
python3之微信文章爬虫实例讲解
Jul 12 Python
基于Python列表解析(列表推导式)
Jun 23 Python
Python数据可视化库seaborn的使用总结
Jan 15 Python
Python子类继承父类构造函数详解
Feb 19 Python
python编程进阶之异常处理用法实例分析
Feb 21 Python
计算Python Numpy向量之间的欧氏距离实例
May 22 Python
Pytorch1.5.1版本安装的方法步骤
Dec 31 Python
PyQt 如何创建自定义QWidget
Mar 24 Python
Python+OpenCV实现图片中的圆形检测
Apr 07 Python
Python数据结构与算法之完全树与最小堆实例
Dec 13 #Python
python+VTK环境搭建及第一个简单程序代码
Dec 13 #Python
VTK与Python实现机械臂三维模型可视化详解
Dec 13 #Python
python+pygame简单画板实现代码实例
Dec 13 #Python
Python实现简单的语音识别系统
Dec 13 #Python
关于反爬虫的一些简单总结
Dec 13 #Python
Python自动化运维_文件内容差异对比分析
Dec 13 #Python
You might like
PHP 分页原理分析,大家可以看看
2009/12/21 PHP
php foreach循环中使用引用的问题
2013/11/06 PHP
php中的动态调用实例分析
2015/01/07 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
PHP5.3新特性小结
2016/02/14 PHP
php原生数据库分页的代码实例
2019/02/18 PHP
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
js获取GridView中行数据的两种方法 分享
2013/07/13 Javascript
js日期联动示例
2014/05/02 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
JavaScript也谈内存优化
2014/06/06 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
JavaScript数组的栈方法与队列方法详解
2016/05/26 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
js 闭包深入理解与实例分析
2020/03/19 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
在Python操作时间和日期之asctime()方法的使用
2015/05/22 Python
详解Python验证码识别
2016/01/25 Python
python在不同层级目录import模块的方法
2016/01/31 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
Python异常的检测和处理方法
2018/10/26 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
2019/08/07 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2020/03/20 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
使用Keras实现简单线性回归模型操作
2020/06/12 Python
客户表扬信范文
2014/01/10 职场文书
经典促销广告词大全
2014/03/19 职场文书
2015年初中生自我评价范文
2015/03/03 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
2015年小学美术工作总结
2015/05/25 职场文书