力扣 208.实现Trie(前缀树)

article/2025/8/21 0:49:01

文章目录

  • 题目介绍
  • 题解

题目介绍

在这里插入图片描述

题解

解析:

  • 初始化:创建一棵 26 叉树,一开始只有一个根节点 root。26 叉树的每个节点包含一个长为 26 的儿子节点列表 son,以及一个布尔值 end,表示是否为终止节点。

  • insert:

    • 遍历字符串 word,同时用一个变量 cur 表示当前在 26 叉树的哪个节点,初始值为 root。
    • 如果 word[i] 不是 cur 的儿子,那么创建一个新的节点 node 作为 cur 的儿子。如果 word[i]=a,那么把 node 记录到 cur 的 son[0] 中。如果 word[i]=b,那么把 node 记录到 cur 的 son[1] 中。依此类推。
    • 更新 cur 为儿子列表中的相应节点。
    • 遍历结束,把 cur 的 end 标记为 true。
  • search 和 startsWith 可以复用同一个函数 find:

    • 遍历字符串 word,同时用一个变量 cur 表示当前在 26 叉树的哪个节点,初始值为 root。
    • 如果 word[i] 不是 cur 的儿子,返回 0。search 和 startsWith 收到 0 之后返回 false。
    • 更新 cur 为儿子列表中的相应节点。
    • 遍历结束,如果 cur 的 end 是 false,返回 1,否则返回 2。search 如果收到的是 2,返回 true,否则返回 false。startsWith 如果收到的是非 0 数字,返回 true,否则返回 false。

代码如下:

class Trie {public Trie() {}public class Node {Node son[]= new Node[26];// 创建一个可以存储 26 个 Node 对象的数组boolean end; // 表示是否为终止节点}Node root = new Node();  //只创建一次,所有的儿子共用一个根节点 public void insert(String word) {Node cur = root;for (char c : word.toCharArray()) {if (cur.son[c - 'a'] == null) {cur.son[c - 'a'] = new Node();}cur = cur.son[c - 'a'];}cur.end = true;}public boolean search(String word) {return find(word) == 2;}public boolean startsWith(String prefix) {return find(prefix) != 0;}public int find(String word) {Node cur = root;for (char c : word.toCharArray()) {if (cur.son[c - 'a'] == null) {return 0;}cur = cur.son[c - 'a'];}return cur.end == true ? 2 : 1;}
}/*** Your Trie object will be instantiated and called as such:* Trie obj = new Trie();* obj.insert(word);* boolean param_2 = obj.search(word);* boolean param_3 = obj.startsWith(prefix);*/

http://www.hkcw.cn/article/dTkZAmXfSs.shtml

相关文章

WiFi万能钥匙鲲鹏服务器部署 TiDB 集群实战指南

作者: TiDBer_yangxi 原文来源: https://tidb.net/blog/15a234d0 一、环境准备 1. 硬件要求 服务器架构 :鲲鹏服务器(ARM架构),TiDB 官方明确支持 ARM 架构服务器部署 推荐配置 (生产环…

Java多线程并发常见问题与解决方案

1. 使用不当:竞争与死锁 synchronized保证了同一时刻只有一个线程访问同步块,但过度使用会导致线程争用、性能瓶颈,甚至死锁。当多个线程在不同顺序上请求多个锁时,容易产生循环等待而死锁。 下面示例演示了两个线程互相持有对方需要的锁导致的死锁情况: Object lockA…

Vue 核心技术与实战day06

1. 路由进阶 1.1 路由的封装抽离 1.21 声明式导航 - 导航链接 1.22 声明式导航 - 两个类名 1.23 声明式导航 - 两个类名 import Find from /views/Find import My from /views/My import Friend from /views/Friendimport Vue from vue import VueRouter from vue-router Vue.…

通信接口 之 串口通信

文章目录 通信接口串口通信硬件电路电平标准串口参数及时序串口时序 通信接口 通信协议及特征 通信目的:将一个设备数据传送到另一个设备,扩展硬件系统,如 STM32 外挂芯片需通信实现数据交换和控制。通信协议作用:制定通信规则&…

2020区块链大作业:基于区块链的供应链金融平台

2020区块链大作业:基于区块链的供应链金融平台 【下载地址】2020区块链大作业基于区块链的供应链金融平台 探索区块链在供应链金融的创新应用,本项目基于区块链技术构建了一个功能丰富的供应链金融平台。不仅实现了基础的金融功能,更通过优化…

以太坊是真正的健全货币吗?驳斥比特币极端主义者的误解

比特币极端主义者通常声称,以太坊(ETH)没有价值,也不是健全货币。他们认为以太坊的基本面不如比特币(BTC)。然而,以太坊支持者通过强有力的论据反驳这些观点,强调以太坊不断发展的经…

股指期货交割日对股市有哪些影响?

股指期货交割日可能影响股市,因为这时资金流动增加、对冲交易集中,且期货市场的套利行为和市场情绪的变化都可能导致股市短期内的波动。 股指期货交割日效应 我们先说,股指期货的交割日的效应主要是指股指期货的交割日常常会伴随着市场的波动…

Java 大视界 -- Java 大数据在智能家居能源区块链交易与管理中的应用探索(252)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也期待你毫无保留地分享独特见解,愿我们于此携手成长,共赴新程!💖 全网…

资产是什么,有那些,普通人可以获得什么?

资产是什么? 资产是指能够带来经济利益的资源,这些资源被企业或个人所拥有或控制,预期在未来能够带来经济利益流入。简单来说,资产就是能够帮助你增加财富、产生收入或减少支出的东西。 资产有哪些类型? 资产可以分为…

跨链代币开发:架起区块链未来的桥梁

跨链代币开发:架起区块链未来的桥梁 ——多链互操作时代的价值流通革命 一、技术突破:构建跨链代币的四大基石 1️⃣ 跨链桥:资产流通的“超级渡轮” 跨链桥通过锁仓与铸造机制实现资产跨链转移,例如Wrapped Bitcoin(W…

poet3 Alpha积分总差一口气?3分钟学会高效刷分技巧!

今天给大家说一套刷积分简单快速有效的刷分流程: 首先刷积分最快捷的方法就是选择:PORT3高效、低损耗刷 为什要选择PORT3了,有何优势值得选择PORT3! 方法1: 推荐方式:使用 Binance Wallet 无私钥地址参与…

AI炼丹日志-25 - OpenAI 开源的编码助手 Codex 上手指南

点一下关注吧!!!非常感谢!!持续更新!!! Java篇: MyBatis 更新完毕目前开始更新 Spring,一起深入浅出! 大数据篇 300: Hadoop&…

11.springCloud AlibabaNacos服务注册和配置中心

总体介绍: Nacos简介 Nacos 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮…

32所新大学来了 有何深意 职业本科加速扩容

职业本科高校正在加速扩容。近日,教育部发布公示,拟同意设置安徽职业技术大学、宁夏职业技术大学、苏州职业技术大学等32所学校。此次拟同意设置的本科高校中,23所为职业本科高校,均由高职专科升级而来,均为公办。自2019年以来,教育部已批准设立了60所本科层次职业学校。…

《碟中谍8》成端午档首日票房冠军 单日票房1.45亿

根据猫眼专业版数据,截至2025年5月31日21时,端午节单日票房达到1.45亿元,观影人次为366.1万,放映场次达43.2万。《碟中谍8:最终清算》成为当天的票房冠军。端午档首日票房前五名依次为: - 《碟中谍8:最终清算》 - 《哆啦A梦:大雄的绘画奇遇记》 - 《时间之子》 - 《星际…

团中央书记处书记王艺有新职 当选全国少工委常务副主任

5月28日上午,中国少年先锋队第九届全国工作委员会第一次全体会议在京举行。会议选举教育部副部长王嘉毅、共青团中央书记处书记王艺为全国少工委常务副主任。王艺出生于1980年5月,河南许昌人,研究生学历,哲学博士。她现任共青团中央书记处书记、全国青联副主席、全国少工委…

66条预警齐发!浙江将迎暴雨 多地需防次生灾害

今天雨水持续,截至早上6:45分,浙江共有66条气象预警,其中暴雨预警43条。大家出门需提高警惕。昨天下午,浙西北地区开始下雨。预计雨量最大的时段为5月31日后半夜至6月2日上午,浙中北有大雨暴雨,杭嘉湖大部、宁绍北部、衢州西北部局部有大暴雨。强对流天气以短时暴雨为主,…

Redisson学习专栏(四):实战应用(分布式会话管理,延迟队列)

文章目录 前言一、为什么需要分布式会话管理?1.1 使用 Redisson 实现 Session 共享 二、订单超时未支付?用延迟队列精准处理2.1 RDelayedQueue 核心机制2.2 订单超时处理实战 总结 前言 在现代分布式系统中,会话管理和延迟任务处理是两个核心…

Cloudini 点云压缩库 ROS PCL 入门教程

系列文章目录 前言 Cloudini 是一个点云压缩库。 它的重点是速度,但仍能达到很好的压缩比。 其主要用途如下 改进包含点云数据的数据集的存储(一个显著的例子就是 rosbags)。降低在网络上串流点云数据时所使用的带宽。 它可与 PCL 和 ROS 无…

吉林第三届全国龙舟邀请赛(大安站)激情开赛

龙舟竞渡处,瑞气满湖光。5月31日,金蛇献瑞龙舞九州2025年全国龙舟大联动-中国吉林第三届全国龙舟邀请赛(大安站)“嫩江湾杯”白城市全民健身龙舟赛在吉林大安嫩江湾国家5A级旅游区玉龙湖拉开帷幕。 上午9时,伴随着激昂的音乐,活力四射的青春舞…