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用户管理系统
Mar 13 Python
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 Python
python实现验证码识别功能
Jun 07 Python
win10下python3.5.2和tensorflow安装环境搭建教程
Sep 19 Python
利用python修改json文件的value方法
Dec 31 Python
python基于C/S模式实现聊天室功能
Jan 09 Python
Python之列表实现栈的工作功能
Jan 28 Python
Python使用psutil获取进程信息的例子
Dec 17 Python
在python下实现word2vec词向量训练与加载实例
Jun 09 Python
Python3开发环境搭建详细教程
Jun 18 Python
python从Oracle读取数据生成图表
Oct 14 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
Nov 28 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
PHPMailer安装方法及简单实例
2008/11/25 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
限制文本字节数js代码
2007/03/06 Javascript
childNodes.length与children.length的区别
2009/05/14 Javascript
一个JQuery操作Table的代码分享
2012/03/30 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
2014/12/31 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
JavaScript中SetInterval与setTimeout的用法详解
2015/11/10 Javascript
jQuery Mobile动态刷新页面样式的实现方法
2016/05/28 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
jquery仿苹果的时间/日期选择效果
2017/03/08 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
用python写的一个wordpress的采集程序
2016/02/27 Python
Python部署web开发程序的几种方法
2017/05/05 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
解决Django Static内容不能加载显示的问题
2019/07/28 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
浅析Python __name__ 是什么
2020/07/07 Python
一款css实现的鼠标经过按钮的特效
2014/09/11 HTML / CSS
儿子婚宴答谢词
2014/01/09 职场文书
大学生村官典型材料
2014/01/12 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
先进个人申报材料
2014/12/30 职场文书
给numpy.array增加维度的超简单方法
2021/06/02 Python
详解非极大值抑制算法之Python实现
2021/06/28 Python