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使用微信SDK实现的微信支付功能示例
Jun 30 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
Jul 13 Python
Python中序列的修改、散列与切片详解
Aug 27 Python
Python之Scrapy爬虫框架安装及简单使用详解
Dec 22 Python
python爬虫之urllib3的使用示例
Jul 09 Python
python反编译学习之字节码详解
May 19 Python
如何用Python来理一理红楼梦里的那些关系
Aug 14 Python
Django 返回json数据的实现示例
Mar 05 Python
python实现用户名密码校验
Mar 18 Python
基于python实现把json数据转换成Excel表格
May 07 Python
Python如何实现爬取B站视频
May 20 Python
Python下载的11种姿势(小结)
Nov 18 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站内搜索关键词变亮的实现方法
2014/12/30 PHP
php强制用户转向www域名的方法
2015/06/19 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
2019/07/18 PHP
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
深入理解Angular4订阅(Subscribe)与取消
2017/11/22 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
js实现点击烟花特效
2020/10/14 Javascript
[01:00:14]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第二场 2月28日
2021/03/11 DOTA
vc6编写python扩展的方法分享
2014/01/17 Python
简介Django中内置的一些中间件
2015/07/24 Python
Python实现复杂对象转JSON的方法示例
2017/06/22 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
欧洲最大的化妆品连锁公司:Douglas道格拉斯
2017/05/06 全球购物
出纳岗位职责模板
2013/11/27 职场文书
公司业务主管岗位职责
2013/12/07 职场文书
法学个人求职信范文
2014/01/27 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
终止劳动合同通知书
2015/04/16 职场文书
2015年预算员工作总结
2015/05/14 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书
goland设置颜色和字体的操作
2021/05/05 Golang
JavaScript事件的委托(代理)的用法示例详解
2022/02/18 Javascript