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
跟老齐学Python之有容乃大的list(3)
Sep 15 Python
解析Python中的二进制位运算符
May 13 Python
基于python的Tkinter编写登陆注册界面
Jun 30 Python
python 读取txt,json和hdf5文件的实例
Jun 05 Python
Pandas 同元素多列去重的实例
Jul 03 Python
Python使用sklearn实现的各种回归算法示例
Jul 04 Python
python getpass模块用法及实例详解
Oct 07 Python
详解如何用python实现一个简单下载器的服务端和客户端
Oct 28 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
Feb 18 Python
python中使用.py配置文件的方法详解
Nov 23 Python
python drf各类组件的用法和作用
Jan 12 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
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
php实现留言板功能(代码详解)
2017/03/28 PHP
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
2010/03/16 Javascript
基于jquery的一个浮动框(扩展性比较好 )
2010/08/27 Javascript
jquery中实现标签切换效果的代码
2011/03/01 Javascript
给artDialog 5.02 增加ajax get功能详细介绍
2012/11/13 Javascript
JavaScript也谈内存优化
2014/06/06 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
Node.js实现Excel转JSON
2015/04/24 Javascript
jQuery CSS3相结合实现时钟插件
2016/01/08 Javascript
jQuery选择器总结之常用元素查找方法
2016/08/04 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
使用RN Animated做一个“添加购物车”动画的方法
2018/09/12 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
Python存取XML的常见方法实例分析
2017/03/21 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
2017/04/15 Python
Python 查看文件的编码格式方法
2017/12/21 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
HTML实现代码雨源码及效果示例
2020/02/25 HTML / CSS
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
介绍一下Java中标识符的命名规则
2014/02/03 面试题
研究生自荐信
2013/10/09 职场文书
毕业生求职的求职信
2013/12/05 职场文书
工商管理毕业生推荐信
2013/12/24 职场文书
本科毕业生求职自荐信
2014/04/09 职场文书
爱国卫生月活动总结范文
2014/04/25 职场文书
专项法律服务方案
2014/06/11 职场文书
2015年电话销售工作总结范文
2015/04/20 职场文书
学校党支部承诺书
2015/04/30 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书
将图片保存到mysql数据库并展示在前端页面的实现代码
2021/05/02 MySQL