本文实例讲述了Python实现简单字典树的方法。分享给大家供大家参考,具体如下:

#coding=utf8

"""代码实现了最简单的字典树,只支持由小写字母组成的字符串。

在此代码基础上扩展一下,就可以实现比较复杂的字典树,比如带统计数的,或支持更多字符的字典树,

或者是支持删除等操作。

"""

class TrieNode(object):

def __init__(self):

# 是否构成一个完成的单词

self.is_word = False

self.children = [None] * 26

class Trie(object):

def __init__(self):

self.root = TrieNode()

def add(self, s):

"""Add a string to this trie."""

p = self.root

n = len(s)

for i in range(n):

if p.children[ord(s[i]) - ord('a')] is None:

new_node = TrieNode()

if i == n - 1:

new_node.is_word = True

p.children[ord(s[i]) - ord('a')] = new_node

p = new_node

else:

p = p.children[ord(s[i]) - ord('a')]

if i == n - 1:

p.is_word = True

return

def search(self, s):

"""Judge whether s is in this trie."""

p = self.root

for c in s:

p = p.children[ord(c) - ord('a')]

if p is None:

return False

if p.is_word:

return True

else:

return False

if __name__ == '__main__':

trie = Trie()

trie.add('str')

trie.add('acb')

trie.add('acblde')

print trie.search('acb')

print trie.search('ac')

trie.add('ac')

print trie.search('ac')

希望本文所述对大家Python程序设计有所帮助。

python 实现字典树_Python实现简单字典树的方法相关推荐

  1. python树的实现_Python实现简单字典树的方法

    本文实例讲述了Python实现简单字典树的方法.分享给大家供大家参考,具体如下: #coding=utf8 """代码实现了最简单的字典树,只支持由小写字母组成的字符串. ...

  2. python 字典处理_Python 6 个字典操作你必须知道

    原标题:Python 6 个字典操作你必须知道 key是否存在 使用in关键字判断key是否存在字典中 不要使用key in d.keys(), 这是一种画蛇添足的操作,因为d.keys()会返回一个 ...

  3. python字典编码_Python列表,字典,元组,字符串操作,文件操作,字符编码

    1. 列表操作 1.1 列表的定义: names = ["wangjing", "wangjun", "hashiqi"] names[0] ...

  4. python编写字典库_Python中的字典及举例-阿里云开发者社区

    字典 字典是python中的唯一的映射类型(哈希表) 字典对象是可变的,但是字典的键必须使用不可变对象,一个字典中可以使用不同类型的键值. 字典的方法 keys() values() items() ...

  5. python获取字典长度_Python中的字典

    1 字典的定义 dictionary(字典) 是 除列表以外Python之中 最灵活的数据类型 字典同样可以用来 存储多个数据 通常用于存储 描述一个 物体的相关信息 和列表的区别 列表是 有序的对象 ...

  6. python坦克大战游戏_python实现简单坦克大战

    基于对面向对象编程的思想完成简单的坦克大战游戏.主要目的锻炼面相对象编程思想 同样的在使用python进行游戏编写时需要安装pygame模块 安装方法: pycharm安装方式:File --> ...

  7. python参数化_Python unittest 简单实现参数化的方法

    Python unittest 理论上是不建议参数驱动的,其用例应该专注单元测试,确保每个method的逻辑正确. 引用Stack Overflow的一个答案, "单元测试应该是独立的,没有 ...

  8. python最简单的架构_Python实现简单状态框架的方法

    本文实例讲述了Python实现简单状态框架的方法.分享给大家供大家参考.具体分析如下: 这里使用Python实现一个简单的状态框架,代码需要在python3.2环境下运行 复制代码 代码如下: fro ...

  9. python 电脑状态_Python实现简单状态框架的方法 -电脑资料

    作者:chongq 字体:[增加 减小] 类型:转载 这篇文章主要介绍了Python实现简单状态框架的方法,涉及Python状态框架的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述 ...

最新文章

  1. 条款39:明智而审慎的使用private继承
  2. 图像处理之简单脸谱检测算法
  3. node.js-------使用路由模块
  4. 文本预处理跑得慢?抱抱脸团队又放福利,1GB文本语料分词只需20s!
  5. 如何免费的让网站启用HTTPS
  6. 《Windows服务器配置与管理》文件系统管理
  7. SAP License:SAP货币转换
  8. Keras一些基本概念
  9. 为什么下载mysql找不到installer文件呀_PythonMySQL系列1(安装Mysql)
  10. Pandas数据分析3-统计、可视化、创建数据框、时间序列、删除数据
  11. 转行学IT,你真的准备好了吗?
  12. 程序员必须了解的10大技术搜索引擎
  13. **time_limited.sof文件
  14. powerVR使用说明
  15. ABC分析做法、步骤、Pareto图制作方法解说
  16. 一篇文章告诉你大数据的重要性
  17. 又一家中国IC进军IPO:年出货上亿颗,在做Type-C 8K芯片
  18. Cesium 相机视角控制
  19. 关于计算优惠券金额的部分优化
  20. 大一计算机专业考什么证书,计算机专业大一的学生能考什么证书?

热门文章

  1. 985计算机院校里的中上等?吉大计算机性价比极高
  2. 不同Python版本间的切换
  3. 在 Win10 中加快微软账户登录速度的解决方案
  4. 北京供销大数据集团荣获“2016-2017年度数据中心优秀创新企业奖”
  5. 2022年 HSC-1th中CRYPTO的BABY-RSA
  6. python爬取微博评论破亿_Python爬虫实战演练:爬取微博大V的评论数据
  7. 大众点评Windows Phone客户端1.2版本发布
  8. ROS与移动底盘通信
  9. Vue组件三大核心概念
  10. 01.模型的概念、UML概述