208. 实现 Trie (前缀树)

Ideas

前缀树嘛,直接套模板咯,把之前写的拿过来抄一遍。

提供一下我的模板。

Code

Python

class TrieNode:def __init__(self, path=0, end=0):self.end = endself.path = pathself.next_nodes = {}class Trie:def __init__(self):self.root = TrieNode()@staticmethoddef get_index(word):return [ord(ch) - ord('a') for ch in word]def insert(self, word: str) -> None:if not word:returnnode = self.rootfor idx in self.get_index(word):if idx not in node.next_nodes:node.next_nodes[idx] = TrieNode()node = node.next_nodes.get(idx)node.path += 1node.end += 1def search(self, word: str) -> bool:if not word:return Falsenode = self.rootfor idx in self.get_index(word):if idx not in node.next_nodes:return Falsenode = node.next_nodes.get(idx)return node.end != 0def delete(self, word: str) -> None:if self.search(word):node = self.rootfor idx in self.get_index(word):if node.next_node[idx].path - 1 == 0:node.next_node[idx].path -= 1node.next_node[idx] = Nonereturnnode = node.next_nodes[idx]node.end -= 1def startsWith(self, prefix: str) -> bool:if not prefix:return Falsenode = self.rootfor idx in self.get_index(prefix):if idx not in node.next_nodes:return Falsenode = node.next_nodes[idx]return node.path != 0

LeetCode 208. 实现 Trie (前缀树) —— 提供一套前缀树模板相关推荐

  1. Leetcode 208.实现 Trie (前缀树)(Implement Trie (Prefix Tree))

    Leetcode 208.实现 Trie (前缀树) 1 题目描述(Leetcode题目链接)   实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三 ...

  2. BZOJ1146[CTSC2008]网络管理——出栈入栈序+树状数组套主席树

    题目描述 M公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门.为了让分布在世界各地的N个 部门之间协同工作,公司搭建了一个连接整个公司的通信网络.该网络的结构由N个路由器和N-1条 ...

  3. BZOJ.4553.[HEOI2016TJOI2016]序列(DP 树状数组套线段树/二维线段树(MLE) 动态开点)

    题目链接:BZOJ 洛谷 \(O(n^2)\)DP很好写,对于当前的i从之前满足条件的j中选一个最大值,\(dp[i]=d[j]+1\) for(int j=1; j<i; ++j)if(a[j ...

  4. 2019南昌网络赛  I. Yukino With Subinterval 树状数组套线段树

    I. Yukino With Subinterval 题目链接: Problem Descripe Yukino has an array \(a_1, a_2 \cdots a_n\). As a ...

  5. 【BZOJ1901】Dynamic Rankings,树状数组套主席树

    Time:2016.05.09 Author:xiaoyimi 转载注明出处谢谢 传送门(权限) 题面 1901: Zju2112 Dynamic Rankings Time Limit: 10 Se ...

  6. zoj 2112 树状数组 套主席树 动态求区间 第k个数

    总算是把动态求区间第k个数的算法看明白了. 在主席树的基础上,如果有修改操作,则要通过套树状数组来实现任意区间求第k小的问题. 刚开始看不明白什么意思,现在有一点理解.树状数组的每个元素是一个线段树, ...

  7. (三叉字典树)二叉树套字典树

    看了道题,是要写个字典树排序的,但又不局限于二十六个字母,于是来了个三叉字典树(二叉树套字典树).最差时间复杂度是trie树的常数倍,空间比trie树省得多了. #include<cstdio& ...

  8. H - Hello Ms. Ze(树状数组套主席树,线段树上二分)

    H - Hello Ms. Ze 给定nnn种不同的材料,第iii种材料有aia_iai​个,有mmm个操作,操作分为两类: 把第xxx种材料修改为yyy个, 只用[l,r][l, r][l,r]区间 ...

  9. ICPC 徐州 H Yuuki and a problem (树状数组套主席树)

    Yuuki and a problem 先不管第一问的修改操作,考虑如何达到第二问的查询操作, 题目要我们给出一个区间[l,r][l, r][l,r]中,不能通过权值+++得到的最小的数字是什么, 假 ...

最新文章

  1. 0x31.数论 - 质数
  2. Caffe 作者贾扬清:我们应该跳出框架的桎梏,往更广泛的领域寻找价值
  3. python入门作业编程题-Python语言编写有趣练习题!
  4. 局域网内同时使用两台路由器的配置方法
  5. Linux rpm 命令参数使用详解[介绍和应用]
  6. 冒泡排序解析 + 代码实现(C语言)
  7. 计算机二级试题java_计算机二级java精选试题及答案
  8. 点菜系统软件源码(点菜软件源码分享)
  9. 分享一个关于跨境电商的竞品分析报告
  10. 谷歌:AI系统需要“自我怀疑”能力,方能作出更好的决定!
  11. 回归云平台的本质,通过平台+应用模式实现软件资源线上共享
  12. C语言怎样提取一个数的十位个位百位千位
  13. Android Studio 使用本地gradle的配置
  14. 没有基础适合学习java吗?
  15. 想要用电脑玩游戏,好的显示器必不可少!电脑显示器要怎么选?
  16. 如何控制苹果Mac电池健康管理功能?
  17. Luminati LPM在Linux下安装教程
  18. C++中的自定义函数
  19. android开发——用户头像
  20. 从项目管理角度谈OA流程优化

热门文章

  1. python之闭包,装饰器
  2. Extjs Window用法详解 2 打印具体应用
  3. ARMV8 datasheet学习笔记3:AArch64应用级体系结构
  4. input.touch拖动物体
  5. MVC+JSON 无限滚动翻页
  6. 第二章 选择符和属性
  7. SEO优化工具之——Google Adwords 关键词工具
  8. 有一次去校内的某个礼堂看电影,在门口有个长得很斯文的陌生人一脸神秘地跟我说:师弟,能不能进去之后,把电影票从厕所的气窗扔出来给我……...
  9. ftp定期任务linux,Linux FTP服务器搭建和crontab计划任务制定
  10. redis可以存多少条数据_最新数据!在武汉14区排名多少可以上高中?精准定位...