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实现扫描局域网活动ip(扫描在线电脑)
Apr 28 Python
Python实现快速排序和插入排序算法及自定义排序的示例
Feb 16 Python
Python实现命令行通讯录实例教程
Aug 18 Python
Python元组操作实例分析【创建、赋值、更新、删除等】
Jul 24 Python
Python去除、替换字符串空格的处理方法
Apr 01 Python
解决python nohup linux 后台运行输出的问题
May 11 Python
flask入门之表单的实现
Jul 18 Python
Linux下多个Python版本安装教程
Aug 15 Python
python3 实现对图片进行局部切割的方法
Dec 05 Python
django的模型类管理器——数据库操作的封装详解
Apr 01 Python
python如何实现DES加密
Sep 21 Python
python os.rename实例用法详解
Dec 06 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
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
2016/07/20 PHP
浅谈php的TS和NTS的区别
2019/03/13 PHP
XmlUtils JS操作XML工具类
2009/10/01 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
Bootstrap Table使用心得总结
2016/11/29 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
2018/12/28 Javascript
layer.alert回调函数执行关闭弹窗的实例
2019/09/11 Javascript
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
JavaScript实现点击出现子菜单效果
2021/02/08 Javascript
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
Python2实现的LED大数字显示效果示例
2017/09/04 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
TensorFlow数据输入的方法示例
2018/06/19 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
pycharm快捷键汇总
2020/02/14 Python
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
护士自荐信怎么写
2013/10/18 职场文书
幼师自荐信
2013/10/26 职场文书
机电一体化专业推荐信
2013/12/03 职场文书
树转促学习心得体会
2014/09/10 职场文书
机关职员工作检讨书
2014/10/23 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python