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抓taobao图片爬虫
Oct 26 Python
python实现的简单猜数字游戏
Apr 04 Python
在Django中创建URLconf相关的通用视图的方法
Jul 20 Python
python如何读写json数据
Mar 21 Python
Python Selenium 之关闭窗口close与quit的方法
Feb 13 Python
Scrapy-Redis结合POST请求获取数据的方法示例
May 07 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
Aug 13 Python
用python实现英文字母和相应序数转换的方法
Sep 18 Python
Python中sorted()排序与字母大小写的问题
Jan 14 Python
Python3操作MongoDB增册改查等方法详解
Feb 10 Python
python实现数据结构中双向循环链表操作的示例
Oct 09 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
Feb 26 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
电脑硬件及电脑配置知识大全
2020/03/17 数码科技
PHP面试题之文件目录操作
2015/10/15 PHP
php二维码生成
2015/10/19 PHP
关于php中一些字符串总结
2016/05/05 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
PHP实现简易blog的制作
2016/10/24 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
requirejs + vue 项目搭建详解
2017/06/16 Javascript
Javascript 编码约定(编码规范)
2018/03/11 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
layui动态绑定事件的方法
2019/09/20 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
详解python的几种标准输出重定向方式
2016/08/15 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
python3实现钉钉消息推送的方法示例
2019/03/14 Python
python字符串和常用数据结构知识总结
2019/05/21 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
2019/08/08 Python
Python导入模块包原理及相关注意事项
2020/03/25 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
详解如何修改python中字典的键和值
2020/09/29 Python
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
80年代复古T恤:TruffleShuffle
2018/07/02 全球购物
Foot Locker澳洲官网:美国运动服和鞋类零售商
2019/10/11 全球购物
Conforama西班牙:您的家具、装饰和电器商店
2020/02/21 全球购物
项目总经理岗位职责
2014/02/14 职场文书
人事科岗位职责范本
2014/03/02 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
在职证明书范本(2014新版)
2014/09/25 职场文书
2019年员工旷工保证书!
2019/06/28 职场文书
Angular性能优化之第三方组件和懒加载技术
2021/05/10 Javascript
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS
canvas实现贪食蛇的实践
2022/02/15 Javascript