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 命令行非阻塞输入的小例子
Sep 27 Python
python命令行参数解析OptionParser类用法实例
Oct 09 Python
Python入门篇之对象类型
Oct 17 Python
简单的编程0基础下Python入门指引
Apr 01 Python
Python+Opencv识别两张相似图片
Mar 23 Python
简单易懂的python环境安装教程
Jul 13 Python
Python实现的选择排序算法原理与用法实例分析
Nov 22 Python
python生成不重复随机数和对list乱序的解决方法
Apr 09 Python
详解python中init方法和随机数方法
Mar 13 Python
Python嵌入C/C++进行开发详解
Jun 09 Python
Python爬虫之Selenium鼠标事件的实现
Dec 04 Python
利用Python将list列表写入文件并读取的方法汇总
Mar 25 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
ajax php 实现写入数据库
2009/09/02 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
PHP输入输出流学习笔记
2015/05/12 PHP
javascript 写类方式之四
2009/07/05 Javascript
基于jquery的页面划词搜索JS
2010/09/14 Javascript
JQuery里选择超链接的实现代码
2011/05/22 Javascript
Jquery异步请求数据实例代码
2011/12/28 Javascript
js优化针对IE6.0起作用(详细整理)
2012/12/25 Javascript
如何防止回车(enter)键提交表单
2014/05/11 Javascript
jquery获取当前日期的方法
2015/01/14 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
swiper 自动图片无限轮播实现代码
2018/05/21 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
eslint+prettier统一代码风格的实现方法
2020/07/22 Javascript
ES6 十大特性简介
2020/12/09 Javascript
[02:17]2016完美“圣”典风云人物:Sccc专访
2016/12/03 DOTA
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
Python基于property实现类的特性操作示例
2018/06/15 Python
Python selenium根据class定位页面元素的方法
2019/02/26 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
django框架cookie和session用法实例详解
2019/12/10 Python
Python实现密码薄文件读写操作
2019/12/16 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
五年级作文之成长
2019/09/16 职场文书
Python3 多线程(连接池)操作MySQL插入数据
2021/06/09 Python
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL