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实用技巧两则
Aug 29 Python
Python图算法实例分析
Aug 13 Python
Python中input与raw_input 之间的比较
Aug 20 Python
K-means聚类算法介绍与利用python实现的代码示例
Nov 13 Python
Python实现简易Web爬虫详解
Jan 03 Python
python pands实现execl转csv 并修改csv指定列的方法
Dec 12 Python
python中while和for的区别总结
Jun 28 Python
python 实现将多条曲线画在一幅图上的方法
Jul 07 Python
python super用法及原理详解
Jan 20 Python
Python Numpy中数据的常用保存与读取方法
Apr 01 Python
利用python为PostgreSQL的表自动添加分区
Jan 18 Python
使用Python获取字典键对应值的方法
Apr 26 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抓取页面的几种方法详解
2013/06/17 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
php实现webservice实例
2014/11/06 PHP
php读取csv数据保存到数组的方法
2015/01/03 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
JS实现根据当前文字选择返回被选中的文字
2014/05/21 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
JavaScript对象数组排序函数及六个用法
2015/12/23 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
2016/11/10 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
vue.js element-ui validate中代码不执行问题解决方法
2017/12/18 Javascript
Vue项目中使用better-scroll实现菜单映射功能方法
2019/09/11 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
[03:46]DAC趣味视频-中文考试.mp4
2017/04/02 DOTA
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
Python中标准库OS的常用方法总结大全
2017/07/19 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
numpy中的高维数组转置实例
2018/04/17 Python
python 多线程重启方法
2019/02/18 Python
python中PS 图像调整算法原理之亮度调整
2019/06/28 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
python3检查字典传入函数键是否齐全的实例
2020/06/05 Python
班组安全员工作职责
2014/02/01 职场文书
企业内控岗位的职责
2014/02/07 职场文书
捐款倡议书
2014/04/14 职场文书
学习雷锋倡议书
2014/04/15 职场文书
学习方法演讲稿
2014/05/10 职场文书
2014年团支部工作总结
2014/11/17 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
学生逃课检讨书
2015/02/17 职场文书
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS