96 前缀树Trie
前缀树
- 题解1 STL
- 题解2 参考官方
Trie(发音类似 “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"); // 返回 True
trie.search("app"); // 返回 False
trie.startsWith("app"); // 返回 True
trie.insert("app");
trie.search("app"); // 返回 True
提示:
- 1 <=
word.length, prefix.length<= 2000 word和prefix仅由小写英文字母组成insert、search和startsWith调用次数 总计 不超过 3 ∗ 1 0 4 3 * 10^4 3∗104 次
题解1 STL
class Trie {// map看存在map<string, int> m;// set看前缀set<string> k;
public:Trie() {}void insert(string word) {m[word] += 1;// k存储前缀for(int i = 0; i <= word.size(); i++)k.insert(word.substr(0, i));}bool search(string word) {if(m.count(word))return true;return false;}bool startsWith(string prefix) {if(k.count(prefix))return true;return false;}
};/*** Your Trie object will be instantiated and called as such:* Trie* obj = new Trie();* obj->insert(word);* bool param_2 = obj->search(word);* bool param_3 = obj->startsWith(prefix);*/

题解2 参考官方
class Trie {vector<Trie*> children;bool isEnd;Trie* searchPrefix(string prefix){Trie* node = this;for(char ch : prefix){ch -= 'a';if(! node->children[ch]){return nullptr;}node = node->children[ch];}return node;}
public:Trie() : children(26), isEnd(false){}void insert(string word) {Trie* node = this;for(char ch : word){ch -= 'a';if(! node->children[ch])node->children[ch] = new Trie();node = node->children[ch];}// 这个word对应的node 完整到底node->isEnd = true;}bool search(string word) {Trie* node = this->searchPrefix(word);// word不可以是前缀,所有要判断isEndreturn node && node->isEnd;}bool startsWith(string prefix) {return this->searchPrefix(prefix) != nullptr;}
};

相关文章:
96 前缀树Trie
前缀树 题解1 STL题解2 参考官方 Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。 请你实现 Trie 类: …...
“第六十六天”
这个我记得是有更优解的,不过还是明天发吧,明天想一想,看看能不能想起来 #include<string.h> int main() {char a[201] { 0 };char b[201] { 0 };scanf("%s %s", a, b);int na strlen(a);int nb strlen(b);int i 0, j …...
MYSQL5.7和MYSQL8配置主从
1、创建专门主从的账号 #登录 mysql -u root -p #创建用户 我这里用户名为test5,注意这里的ip是从库服务器的ip CREATE USER test5192.168.1.20 IDENTIFIED WITH mysql_native_password BY xxxxx; #给主从复制账号授权 grant replication slave on *.* to test5192…...
springboot苍穹外卖实战:九、小程序微信登录代码开发+商品浏览
微信登录 application.yml和application-dev.yml application-dev.yml sky:wechat:appid: xxxsecret: xxxapplication.yml sky:wechat:appid: ${sky.wechat.appid}secret: ${sky.wechat.secret}配置为微信用户生成jwt令牌时使用的配置项: application.yml sky…...
【MySQL系列】 第二章 · SQL(下)
写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正࿰…...
SpringBoot_01
Spring https://spring.io/ SpringBoot可以帮助我们非常快速的构建应用程序、简化开发、提高效率。 SpringBootWeb入门 需求:使用SpringBoot开发一个web应用,浏览器发起请求/hello后,给浏览器返回字符串"Hello World~~~"。 步骤…...
【OS】AUTOSAR架构下多核通信
目录 前言 正文 1.多核通信介绍 2.多核间标准通信 2.1 什么是IOC 2.2 IOC的适用范围...
从Docker Hub获取镜像和创建容器
从Docker Hub获取镜像和创建容器 Docker Hub是一个公共的Docker镜像仓库,您可以从中获取各种镜像来构建容器。本文将演示如何从Docker Hub获取镜像,并用这些镜像创建和运行容器。让我们开始吧! 步骤 1:搜索镜像 首先࿰…...
江西开放大学引领学习新时代:电大搜题助力学子迈向成功
江西开放大学(简称江西电大)一直以来致力于为学子提供灵活便捷的学习服务。近年来,携手电大搜题微信公众号,江西开放大学以其卓越的教学质量和创新的教学手段,为广大学子开启了一扇通向成功的大门。 作为一家知名的远…...
入门指南:Docker的基本命令
入门指南:Docker的基本命令 Docker是一个功能强大的容器化平台,可以帮助您轻松构建、打包和部署应用程序。要充分利用Docker,您需要了解一些基本命令。本文将介绍并示范Docker的一些最重要的基本命令,以帮助您快速上手。 1. doc…...
nvdiffrast的MeshRenderer
获取输入: vertex: 顶点坐标,大小为(B, N, 3)tri: 面片索引,大小为(B, M, 3) 或 (M, 3)feat(可选): 顶点features,大小为(B, C)计算NDC(标准设备坐标)投影矩阵,用于投影到图像平面。将顶点坐标转换到同质坐标(加1维,方便后续运算)。用NDC投影矩阵将顶点坐标转换到NDC空间。创建…...
APISIX源码安装问题解决
官网手册的安装语句: curl https://raw.githubusercontent.com/apache/apisix/master/utils/install-dependencies.sh -sL | bash -执行 install-dependencies.sh 报如下错误: Transaction check error:file /usr/share/gcc-4.8.2/python/libstdcxx/v6…...
基于SSM和vue的在线购物系统
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SSM和vue的在线购物系统,java项目。…...
力扣100题——子串
560.和为k的子数组 这道题目不是滑动窗口的类型,因为长度并不是固定的。(好的,我在说废话) 注意题目要求是子数组,且是连贯的。那这里的话,解法有很多,最简单的就是暴力解法,但在这…...
自然语言处理中的文本聚类:揭示模式和见解
一、介绍 在自然语言处理(NLP)领域,文本聚类是一种基本且通用的技术,在信息检索、推荐系统、内容组织和情感分析等各种应用中发挥着关键作用。文本聚类是将相似文档或文本片段分组为簇或类别的过程。这项技术使我们能够发现隐藏的…...
C/C++内存管理——“C++”
各位CSDN的uu们你们好呀,好久没有更新小雅兰的C专栏啦,下面,小雅兰继续开始更新C专栏的内容!!!今天,小雅兰的内容是C和C的内存管理,下面,让我们进入C的世界吧!…...
jsp小知识
jsp小知识 1[单选题] 用户登录功能中,用到的数据库操作是( )。 正确答案: C 我的答案: C A. 增加 B. 删除 C. 查询 D. 修改 2[单选题] 下列说法错误的是( )。 正确答案: C 我的答案: C A. JDBC API包括一组支…...
Flutter:改变手机状态栏颜色,与appBar状态颜色抱持一致
前言 最近在搞app的开发,本来没怎么注意appBar与手机状态栏颜色的问题。但是朋友一说才注意到这两种的颜色是不一样的。 我的app 京东 qq音乐 这样一对比发现是有的丑啊,那么如何实现呢? 实现 怎么说呢,真不会。百度到的一些是…...
深入分析:一体化运维监控在金融行业的关键作用
金融行业,作为现代经济的核心支柱,对信息技术的依赖程度极高。在飞速发展的金融科技背景下,如何保障IT系统的稳定运行,成为了行业关注的焦点。一体化运维监控,通过实时监控、智能预警、快速定位及自动化恢复等功能&…...
物联网AI MicroPython学习之语法 network网络配置模块
学物联网,来万物简单IoT物联网!! network介绍 模块功能: 用于管理Wi-Fi和以太网的网络模块参考用法: import network import time nic network.WLAN(network.STA_IF) nic.active(True) if not nic.isconnected():…...
FLUX.1-schnell:如何用12B参数模型重塑创意产业工作流
FLUX.1-schnell:如何用12B参数模型重塑创意产业工作流 【免费下载链接】FLUX.1-schnell 项目地址: https://ai.gitcode.com/hf_mirrors/black-forest-labs/FLUX.1-schnell 在人工智能图像生成领域,一个模型的质量往往由其参数规模决定。FLUX.1-s…...
、SEATA分布式事务——XA模式咀
MySQL 中的 count 三兄弟:效率大比拼! 一、快速结论(先看结论再看分析) 方式 作用 效率 一句话总结 count(*) 统计所有行数 最高 我是专业的!我为统计而生 count(1) 统计所有行数 同样高效 我是 count(*) 的马甲兄…...
论文阅读:arxiv 2025 When Models Outthink Their Safety: Unveiling and Mitigating Self-Jailbreak in Large
总目录 大模型安全研究论文整理 2026年版:https://blog.csdn.net/WhiffeYF/article/details/159047894 When Models Outthink Their Safety: Unveiling and Mitigating Self-Jailbreak in Large Reasoning Models https://arxiv.org/abs/2510.21285 该论文题为《W…...
LLM API 防降智!IMMACULATE 框架,1% 开销搞定审计验证
来源:机器之心 本文约2500字,建议阅读5分钟本文介绍了 IMMACULATE 框架,可低开销审计黑盒 LLM API 违规行为。本文作者分别来自新加坡国立大学和加州大学伯克利分校。第一作者郭衍培来自新加坡国立大学,长期关注大语言模型基础设施…...
从零构建ROS履带车:揭秘AI与无人驾驶核心技术(2)
1. 从零搭建ROS履带车的硬件基础 想要打造一台能跑能跳的智能履带车,第一步得把硬件架子搭结实。我当年第一次做履带车时,用的就是淘宝上200块钱的金属履带底盘套件,搭配Jetson Nano开发板作为大脑。这里有个实用建议:选择履带宽度…...
Linux I/O 演进史:从管道到零拷贝,一篇串起个服务端核心原语孛
前言 在使用 kubectl get $KIND -o yaml 查看 k8s 资源时,输出结果中包含大量由集群自动生成的元数据(如 managedFields、resourceVersion、uid 等)。这些信息在实际复用 yaml 清单时需要手动清理,增加了额外的工作量。 使用 kube…...
2026 行李箱横评|5 款实测数据,百元到千元怎么选
行李箱是高频出行的 “移动小家”,但不少人都踩过坑:轮子异响推一路吵一路、拉杆晃动装满就晃悠、箱体开裂托运一次就报废。2026 年出行旺季将至,结合 5 款热门品牌实测数据,从材质、轮子、锁具 3 大核心维度拆解,帮你…...
打造沉浸式智能AI问答助手:Vue + UniApp 全端实战(支持 Markdown/公式/多模态交互)唇
OCP原则 ocp指开闭原则,对扩展开放,对修改关闭。是七大原则中最基本的一个原则。 依赖倒置原则(DIP) 什么是依赖倒置原则 核心是面向接口编程、面向抽象编程, 不是面向具体编程。 依赖倒置原则的目的 降低耦合度&#…...
MapAnything损失函数深度剖析:如何设计多任务学习框架
MapAnything损失函数深度剖析:如何设计多任务学习框架 【免费下载链接】map-anything MapAnything: Universal Feed-Forward Metric 3D Reconstruction 项目地址: https://gitcode.com/gh_mirrors/map/map-anything MapAnything作为一款先进的通用前馈度量3D…...
多屏时代的窗口效率引擎:Rectangle智能布局解决方案
多屏时代的窗口效率引擎:Rectangle智能布局解决方案 【免费下载链接】Rectangle Move and resize windows on macOS with keyboard shortcuts and snap areas 项目地址: https://gitcode.com/gh_mirrors/re/Rectangle 场景痛点:当混乱成为工作流的…...
