力扣208-实现前缀树
📅 2026/7/22 5:41:30
👁️ 次浏览
208. 实现 Trie (前缀树) - 力扣LeetCodeTrie发音类似 try或者说前缀树是一种树形数据结构用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景例如自动补全和拼写检查。请你实现 Trie 类Trie()初始化前缀树对象。void insert(String word)向前缀树中插入字符串word。boolean search(String word)如果字符串word在前缀树中返回true即在检索之前已经插入否则返回false。boolean startsWith(String prefix)如果之前已经插入的字符串word的前缀之一为prefix返回true否则返回false。示例输入[Trie, insert, search, search, startsWith, insert, search]], [apple], [apple], [app], [app], [app], [app**输出**[null, null, true, false, true, null, true]解释Trie trie new Trie();trie.insert(apple);trie.search(apple); // 返回 Truetrie.search(app); // 返回 Falsetrie.startsWith(app); // 返回 Truetrie.insert(app);trie.search(app); // 返回 True提示1 word.length, prefix.length 2000word和prefix仅由小写英文字母组成insert、search和startsWith调用次数总计不超过3 * 104次如果单词只有 a 和 b 两个字母那么就变成了一个二叉树。假设 a 是左子节点b 是右子节点即 a 往左走b 往右走insert : 假设插入 aabb那么相当于新增一条“左、左、右、右”的二叉树路径标记最后一个节点为终止节点。如果再插入 aabba那么相当于一条“左、左、右、右、左”的二叉树路径给刚刚的路径的终止节点新增一个左子节点并标记这个左子节点为终止节点即可search : 例如查找字符串 aabb相当于在二叉树中查找是否存在一个“左、左、右、右”的路径且最后一个节点为终止节点starswith : 相当于 search只不过不需要“最后一个节点为终止节点”这么苛刻现在是单词也就是26个字母的排列组合那么就从二叉树变成二十六叉树。26叉树的每个节点包含一个长为26的儿子节点列表还有一个布尔变量 end 标记该节点是否为终止节点。insert :1.遍历 word用 cur 表示当前字符在树的哪个节点初始时 cur 为 root2.如果word[i]不是 cur 的儿子就创建一个节点 node 作为 cur 的儿子。如果word[i]为 a那么 cur 的 son 数组中的son[0]就等于这个新创建的节点 node后面的字符以此类推3.更新 cur 为儿子列表中的相应节点4.word 遍历完毕将 cur 的 end 设置为 true因为 startwith 和 search 的过程高度重叠因此可以通用一个 find 函数1.遍历字符串 word用变量 cur 表示当前字符在树的哪个节点初始时 cur 为 root2.如果word[i]不是 cur 的儿子返回 0search 和 startsWith 收到 0 之后返回 false3.更新 cur 为儿子列表中的相应节点4.遍历结束如果 cur 的 end 是 false返回 1否则返回 25.search 如果收到的是 2返回 true否则返回 false6.startsWith 如果收到的是非 0 数字返回 true否则返回 falseclass Trie: def __init__(self) : self.root Node() def insert(self, word: str) - None : cur self.root # 表示当前遍历到的字符在树中的位置 for c in word : if c not in cur.son : cur.son[c] Node() cur cur.son[c] cur.end True # 遍历完成标记终止节点 def find(self, word : str) - int : cur self.root for c in word : if c not in cur.son : return 0 cur cur.son[c] return 2 if cur.end else 1 # 如果遍历到最后发现最后一个字符刚好是终止节点说明完全匹配search 返回 true def search(self, word: str) - bool : return self.find(word) 2 def startsWith(self, prefix: str) - bool : return self.find(prefix) ! 0 class Node : __slots__ son, end def __init__(self) : self.son {} self.end False
1. 量子技术科普:从零开始理解量子世界当第一次听到"量子"这个词时,大多数人脑海中浮现的可能是科幻电影中那些神秘莫测的场景。但事实上,量子技术已经悄然走进我们的现实生活。我从事量子计算研究已有八年时间,见证了这…
📅 2026/7/21 2:48:47
1. 项目概述:当Python遇上对话式AI智能体在2023年大模型技术爆发后,构建具备持续对话能力的AI智能体已成为开发者社区的热门方向。传统聊天机器人最令人诟病的痛点就是"金鱼记忆"——每次对话都像初次见面。而通过Python整合LangChain与LangGr…
📅 2026/7/21 2:48:47
最近好多兄弟问我,说那个很火的geo geo帽子到底值不值得入。说实话,一开始我也觉得就是个大logo,没啥特别的。但当你真正戴上它,站在镜子前那一刻,你会发现,这玩意儿不仅仅是个配饰,它简直是你修饰脸型的“物理外挂”。咱们先不说别的,就说说这个帽子最核心的功能——显…
📅 2026/7/21 2:48:31
前几天有个做跨境电商的朋友问我,说在后台看数据报表的时候,看到一列叫 "geo mid" 的东西,死活读不准,发音怪怪的,心里发毛,怕自己显得不专业。我仔细一看,这其实是个挺典型的“术语焦虑”。很多人一听到这种缩写组合,第一反应就是去查字典,结果越查越晕。其…
📅 2026/7/22 5:40:56
AI宠物诊疗平台开发排名,医师排班自动调度架构AI宠物诊疗平台的商业化落地能力,除了AI问诊、电子病历、云端档案存储等前端功能外,后端医师排班自动调度架构的合理性、稳定性、智能化程度,是区分平台开发实力、决定平台运营效率的…
📅 2026/7/22 5:40:34
1. 项目概述:从“Hello World”到“智能冰箱”很多C初学者在啃完语法书、刷完基础题后,会陷入一个迷茫期:下一步该做什么?继续刷算法题,还是去学框架?我的建议是,找一个贴近生活、有明确功能边界…
📅 2026/7/22 5:40:34
1. 项目概述:为什么是C与GeoTIFF?在地理信息科学(GIS)和遥感领域,处理海量、高精度的空间数据是家常便饭。你可能用过QGIS、ArcGIS这类桌面软件,或者Python的GDAL、Rasterio库,它们确实方便。但…
📅 2026/7/22 5:40:34
这次我们来看一个音乐演出相关的技术项目,重点不是演出内容本身,而是如何通过技术手段实现高质量的演出记录、音频处理和内容分发。这个项目涉及现场演出录制、音频处理、多轨道混音和最终内容发布的全流程。对于技术爱好者来说,最关心的可能…
📅 2026/7/22 5:40:34
在实际 AI 开发和应用中,Claude Code 作为 Anthropic 推出的编程辅助工具,正逐渐成为开发者提升编码效率的重要选择。然而,从网络热词和搜索反馈来看,许多开发者在安装、配置和使用 Claude Code 的过程中遇到了各种实际问题&#…
📅 2026/7/22 5:40:34
1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…
📅 2026/7/22 0:00:13
1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…
📅 2026/7/22 0:00:13
甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…
📅 2026/7/22 0:00:13
1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…
📅 2026/7/22 1:05:21
1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…
📅 2026/7/22 1:05:21
更多请点击:
https://intelliparadigm.com
第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…
📅 2026/7/22 1:05:21
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/21 7:04:23
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/21 17:04:52
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/22 5:05:32