当前位置: 首页 > news >正文

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

题目链接

208.实现Trie(前缀树)

class Trie {Trie[] children;boolean isEnd;public Trie() {children = new Trie[26];isEnd = false;}public void insert(String word) {Trie node = this;int len = word.length();for (int i = 0; i < len; i++) {int index = word.charAt(i) - 'a';if (node.children[index] == null) {node.children[index] = new Trie();}node = node.children[index];if (i == len - 1) {node.isEnd = true;}}}public boolean search(String word) {Trie node = this;for (int i = 0; i < word.length(); i++) {int index = word.charAt(i) - 'a';if (node.children[index] == null)return false;node = node.children[index];}return node.isEnd;}public boolean startsWith(String prefix) {Trie node = this;for (int i = 0; i < prefix.length(); i++) {int index = prefix.charAt(i) - 'a';if (node.children[index] == null)return false;node = node.children[index];}return true;}
}

小结:前缀树是一个类似26叉树,并有一个额外标记是否为字符串结尾,插入的时候用一个结点指针依次扫描字符串每一位,不存在则新建。

http://www.lryc.cn/news/611104.html

相关文章:

  • C++ - 仿 RabbitMQ 实现消息队列--服务端核心模块实现(六)
  • Linux-Day11.WEB服务,虚拟主机
  • VUE丢失long类型精度,使用 json-bigint 库解析大整数
  • 人工智能领域、图欧科技、IMYAI智能助手2025年7月更新月报
  • 暑期算法训练.14
  • 关于如何SecureCRT软件连接开发板后默认显示大字体,且重启开发板或重新连接时不会重置的方法
  • Android原生项目集成Flutter模块极简指南
  • Linux学习-数据结构(链表)
  • 深入浅出:Ajax 与 Servlet 实现前后端数据交互
  • 01-数据结构
  • ES(Elasticsearch)进程掉线(节点脱离集群)问题
  • 18-Chapter03-Example05
  • Ubuntu24.04环境下非DOCKER方式安装Mysql5.7
  • 《Linux编译器:gcc/g++食用指南》
  • Go 单元测试:如何只运行某个测试函数(精确控制)
  • 龙芯(loongson) ls2k1000 openwrt
  • 007TG洞察:高效运营Telegram私域流量:技术挑战与自动化解决方案探索
  • Wisdom SSH:自动化网络配置管理的领航者
  • LangChain入门:内存、记录聊天历史 ChatMessageHistory、模型、提示 ( Prompt )、模式 ( Schema )
  • golang的切片
  • 2025年特种设备作业人员考试题库及答案(流动式起重机Q2)
  • MyBatisPlus查询数据库中所有表的数据(AI)
  • GPU 基础矩阵精规组织教程:从基础作用到实战应用
  • Redis里面什么是sdshdr,可以详细介绍一下吗?
  • 用 Spark 找出最大值:高性能计算的正确姿势
  • 8XC552 系列单片机的定时器 T2 和捕捉比较逻辑是什么
  • 如何通过视觉+自动化组合拳提升UI测试的质量
  • Centos-Stream 10 安装教程(2025版图文教程)
  • Vue2博客项目笔记(第一天)
  • SpringBoot集成STOMP