字符串s构造前缀树,并判断p是否属于s的子串

文章目录

  • 1、描述
  • 2、notes
  • 3、code

1、描述

根据几个单词,构造一个前缀树,再给定一个单词p,判断p是否属于s的前缀
输入:vec = {“hello”, “world”, “hey”, “hi”} p = “hell”
输入:yes

2、notes

就直接构造

3、code

#include <iostream>
#include <vector>
#include <cstring>using namespace std;struct TrieNode {TrieNode* children[26];bool isEnd;TrieNode() {memset(children, 0, sizeof(children));isEnd = false;}
};void insert(TrieNode* root, string word) {TrieNode* node = root;for (char c : word) {int index = c - 'a';if (!node->children[index]) {node->children[index] = new TrieNode();}node = node->children[index];}node->isEnd = true;
}TrieNode* buildTrie(vector<string>& words) {TrieNode* root = new TrieNode();for (string word : words) {insert(root, word);}return root;
}bool isPrefix(TrieNode* root, string prefix) {TrieNode* node = root;for (char c : prefix) {int index = c - 'a';if (!node->children[index]) {return false;}node = node->children[index];}return true;
}int main() {vector<string> words = {"hello", "world", "hi", "hey"};TrieNode* root = buildTrie(words);string s = "hello, world, hi, hey";string p1 = "worldi";string p2 = "hell";string p3 = "abc";if (isPrefix(root, p1)) {cout << p1 << " is a prefix of " << s << endl;} else {cout << p1 << " is NOT a prefix of " << s << endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/43742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编程语言如何和计算机交互:深入解析交互机制

编程语言如何和计算机交互&#xff1a;深入解析交互机制 在数字化世界的深处&#xff0c;编程语言与计算机之间的交互是构建数字逻辑、实现功能需求的基石。这一过程既充满神秘&#xff0c;又充满力量。那么&#xff0c;编程语言究竟是如何与计算机进行交互的呢&#xff1f;本…

好的管理是什么样子的?放权与监督

背景 身份&#xff1a;一线管理干部&#xff08;组长、基层部门负责人&#xff09;目标&#xff1a;部门承接的任务能够按期高质量完成&#xff1b;在80%以上的时间里&#xff0c;部门所有成员知道自己要做什么&#xff0c;如何做好 措施 带团队已经有几年时间了&#xff0c…

行为模式8.状态模式------灯泡状态切换

行为型模式 模板方法模式&#xff08;Template Method Pattern&#xff09;命令模式&#xff08;Command Pattern&#xff09;迭代器模式&#xff08;Iterator Pattern&#xff09;观察者模式&#xff08;Observer Pattern&#xff09;中介者模式&#xff08;Mediator Pattern…

融合CDN是什么?为什么需要融合CDN?其应用方法与原理是什么?

你了解融合CDN是什么吗&#xff1f;为什么需要融合CDN&#xff1f;你可能有听过融合CDN&#xff0c;但你知道它的应用方法与原理吗&#xff1f;本文将带你一次了解什么是融合CDN&#xff0c;详细介绍融合CDN的应用方法与运用原理&#xff0c;立刻替您解开心中疑惑&#xff01; …

【Qt】xml Dom复制

1. 功能 将A.xml文件中的copyNode节点全部复制到B.xml中的testRoot节点。 2. 代码 #include <QDomDocument> #include <QFile> #include <QIODevice> #include <QtXml>void copyNodeXml() {// 源文件DOMQDomDocument ADoc;// 加载源文件QFile fileA(…

[微信小程序知识点]自定义组件-拓展-外部样式类

使用组件时&#xff0c;组件使用者可以给组件传入css类名&#xff0c;通过传入的类名修改组件的样式 。 如果需要使用外部样式类修改组件的样式&#xff0c;在Component中需要用extemalClassess定义若干个外部样式类。 具体用法如下: (1)在Components文件里创建custom06组件 (…

EtherCAT ESI文件CRC32计算规则和方法

EtherCAT ESI文件CRC32计算规则和方法 EtherCAT ESI文件的CRC32计算遵循特定的规则&#xff0c;以确保设备描述的完整性。以下是详细的规则和计算步骤&#xff0c;以及C#实现示例&#xff1a; 计算规则 使用标准的CRC32多项式&#xff1a;0x04C11DB7初始值&#xff1a;0xFFF…

Python实现文件访问和加密GUI应用程序

Python实现文件访问和加密 简单的文本文件加密和解密的GUI应用程序&#xff0c;实现了一个简单的凯撒密码加密和解密算法 运行效果 1.实现UI界面 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yG28ajb1-1720676735133)(https://i-blog.csdnimg.…

免费SSL证书申请指南

申请免费SSL证书的步骤相对直接&#xff0c;以下是基于当前可用信息的简明指南&#xff0c;特别是针对一些热门的免费SSL证书提供商&#xff0c;下面以JoySSL证书商为例&#xff1a; 1、注册账号 打开JoySSL官网&#xff0c;注册并填写邀请码230920&#xff0c;获取免费证书与…

RK系列UST-OTG切换为HOST模式或DEVICE模式的两种方法(DTS修改和软件命令修改)

1、修改DTS dr_mode: tells Dual-Role USB controllers that we want to work on a particular mode. Valid arguments are “host”, “peripheral” and “otg”. In case this attribute isn’t passed via DT, USB DRD controllers should default to OTG. usb20_otg: usb…

浅谈三车平台车型对比功能实用奖-竞品分析

目录&#xff1a; 一、项目背景 二、竞品概述 三、竞品目标功能对比 3.1、车型对比入口位置 3.2、车型对比首页 3.3、添加/删除车型功能 3.4、选择车型后功能对比 3.5、配置对比的功能 四、总结 一、项目背景 在汽车购买过程中&#xff0c;消费者经常面临着选择困难&…

六、数据可视化—Echars(爬虫及数据可视化)

六、数据可视化—Echars&#xff08;爬虫及数据可视化&#xff09; Echarts应用 Echarts Echarts官网&#xff0c;很多图表等都是我们可以 https://echarts.apache.org/zh/index.html 是百度自己做的图表&#xff0c;后来用的人越来越多&#xff0c;捐给了orange组织&#xf…

【好生意】畅捷通好生意各版本之间的区别

【畅捷通好生意各版本区别】 随着产品线的增加&#xff0c;不同版本之间存在差异。 以下是针对自己使用、研究过程中的记录。 完善ing 功能普及版标准版采购运费分摊没有单独的采购费用分摊单&#xff0c;但是支持随单分摊。支持

企业如何挑选策划公司,这些标准你了解吗?

诚然&#xff0c;在这个竞争激烈的市场环境下&#xff0c;企业有时候就像是站在十字路口的旅人&#xff0c;面前摆着的是一条条花钱却未必能看见收益的道路。 这时候&#xff0c;找一家对的策划公司就很重要&#xff0c;这里分享一点个人多年经验&#xff0c;希望对你有所帮助…

【精简教程】VSCode 连接 Remix

初始化 Node.js 项目 yarn init v1.22.19安装 Remix yarn add remix-project/remixd -g⚠️ 此时如果直接敲 remix&#xff0c;显示找不到这个命令。 使用 Node.js 来直接执行 remixd.js 文件 node node_modules\remix-project\remixd\src\bin\remixd.js&#x1f604; 连接上了…

安全极客团队荣获首届“矩阵杯”网络安全大赛人工智能挑战赛“三等奖”

近日&#xff0c;东半球规格高、规模大且奖金丰厚的网络安全顶级赛事——首届“矩阵杯”网络安全大赛在青岛国际会议中心圆满落幕。本次大赛设置了五大赛事&#xff0c;包括通用产品漏挖赛、国产软硬件安全检测赛、原创漏洞挖掘赛、人工智能&#xff08;大模型&#xff09;挑战…

【Linux】Windows平台使用gdb调试FFmpeg源码

FFmpeg是一个跨平台的多媒体库&#xff0c;有时需要在别的平台上进行开发和调试&#xff0c;记录一下在linux环境下使用gdb来调试FFmpeg源码的基本方式 1.可执行文件 在windows平台使用linux环境来调试FFmpeg源码&#xff0c;需要编译生成一个后缀有_g的exe文件&#xff0c;参…

HTTP中常见的状态码有哪些?

常用的包括以下几个&#xff1a; 200&#xff1a;表示客户端请求成功 201&#xff1a;请求成功,服务器创建了新资源。 204&#xff1a;无内容&#xff0c;服务器成功处理请求&#xff0c;但未返回任何内容。 206: 表示“部分内容”,当客户端请求一个资源的一部分时&#xff0c;…

YOLOv10部署教程,使用tensorRT部署,有转化和推理代码

YOLOv10部署教程,使用tensorRT部署,有转化和推理代码 一、使用平台1. 转化onnx模型转化trt模型模型推理全部的代码论文题目:YOLOv10: Real-Time End-to-End Object Detection 研究单位:清华大学 论文链接:http://arxiv.org/abs/2405.14458 代码链接:https://github.com/T…

每天一个数据分析题(四百二十三)- 置信区间

在给定的显著性水平下&#xff0c;某一特定的X水平上&#xff0c;总体Y分布的离散度越大&#xff0c;即σ^2越大&#xff0c;则 A. 预测区间越宽&#xff0c;精度越低 B. 预测区间越宽&#xff0c;预测误差越小 C. 预测区间越窄&#xff0c;精度越高 D. 预测区间越窄&#…