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计算文本文件行数的方法
Jul 06 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
Jan 20 Python
举例讲解Python面向对象编程中类的继承
Jun 17 Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
Python 编码处理-str与Unicode的区别
Sep 06 Python
Python装饰器模式定义与用法分析
Aug 06 Python
Python程序包的构建和发布过程示例详解
Jun 09 Python
python中的decimal类型转换实例详解
Jun 26 Python
wxpython实现按钮切换界面的方法
Nov 19 Python
通过Python实现一个简单的html页面
May 16 Python
打印tensorflow恢复模型中所有变量与操作节点方式
May 26 Python
C3 线性化算法与 MRO之Python中的多继承
Oct 05 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 xfocus防注入资料
2008/04/27 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
phpword插件导出word文件时中文乱码问题处理方案
2014/08/19 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
Yii开启片段缓存的方法
2016/03/28 PHP
Joomla开启SEF的方法
2016/05/04 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
Node.js如何自动审核团队的代码
2016/07/20 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
使用webpack搭建react开发环境的方法
2018/05/15 Javascript
Koa 中的错误处理解析
2019/04/09 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
记录一次websocket封装的过程
2020/11/23 Javascript
python入门教程之识别验证码
2017/03/04 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
Python中列表与元组的乘法操作示例
2018/02/10 Python
python使用sqlite3时游标使用方法
2018/03/13 Python
css3闪亮进度条效果实现思路及代码
2013/04/17 HTML / CSS
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
丝芙兰香港官网:Sephora香港
2018/03/13 全球购物
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
探索欧洲最好的品牌:Bombinate
2019/06/14 全球购物
采购员的工作职责
2013/12/26 职场文书
岗位职责说明书
2014/05/07 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
作风转变年心得体会
2014/10/22 职场文书
高考学习决心书
2015/02/04 职场文书
教师工作表现自我评价
2015/03/05 职场文书
给朋友的道歉短信
2015/05/12 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js