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实现的一只从百度开始不断搜索的小爬虫
Aug 13 Python
Python实现获取某天是某个月中的第几周
Feb 11 Python
Python实现简单生成验证码功能【基于random模块】
Feb 10 Python
python实现寻找最长回文子序列的方法
Jun 02 Python
python实现反转部分单向链表
Sep 27 Python
python+opencv实现阈值分割
Dec 26 Python
python绘制多个子图的实例
Jul 07 Python
Python实现Selenium自动化Page模式
Jul 14 Python
解决pyCharm中 module 调用失败的问题
Feb 12 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
Dec 14 Python
用Python 执行cmd命令
Dec 18 Python
Python3的进程和线程你了解吗
Mar 16 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
动易数据转成dedecms的php程序
2007/04/07 PHP
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
2012/09/13 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
PHP多维数组排序array详解
2017/11/21 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
区分JS中的undefined,null,"",0和false
2007/03/08 Javascript
学习从实践开始之jQuery插件开发 菜单插件开发
2012/05/03 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
javascript如何写热点图
2015/12/08 Javascript
基于jQuery实现select下拉选择可输入附源码下载
2016/02/03 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
bootstrap输入框组使用方法
2017/02/07 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
2017/10/20 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
Javascript Symbol原理及使用方法解析
2020/10/22 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
python中ConfigParse模块的用法
2014/09/29 Python
Python实现Linux中的du命令
2017/06/12 Python
Python常见的pandas用法demo示例
2019/03/16 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
最新远光软件笔试题面试题内容
2013/11/08 面试题
管理学专业个人求职信范文
2013/09/21 职场文书
物流合作计划书
2014/01/10 职场文书
初中考试作弊检讨书
2014/02/01 职场文书
个人自我剖析材料
2014/02/07 职场文书
运动会200米广播稿
2015/08/19 职场文书
员工聘用合同范本
2015/09/21 职场文书