面试题 17.17. 多次搜索

链接:. - 力扣(LeetCode)

题解:

class Solution {
private:struct Trie {Trie() {end = false;index = -1;next.resize(26);}bool end;int index;std::vector<std::unique_ptr<Trie>> next;};void insert_trie(int index, Trie* root, std::string& word) {Trie* cur = root;for (int i = 0; i < word.size(); ++i) {int index = word[i] - 'a';if (!cur->next[index]) {std:unique_ptr<Trie> tmp = make_unique<Trie>();cur->next[index].reset(tmp.release());}cur = cur->next[index].get();}cur->index = index;}
public:vector<vector<int>> multiSearch(string big, vector<string>& smalls) {if (smalls.size() <= 0) {return {};}std::vector<std::vector<int>> result(smalls.size(), std::vector<int>{});std::unique_ptr<Trie> root = make_unique<Trie>();for (int i = 0; i < smalls.size(); ++i) {// 插入small,且记录当前small的index iinsert_trie(i, root.get(), smalls[i]);}// 从每一个位置,遍历bigfor (int i = 0; i < big.size(); ++i) {Trie* cur = root.get();// 判断后面的字符,是否存在匹配过的for (int j = i; j < big.size(); ++j) {int index = big[j] - 'a';// 不匹配的停止if (!cur->next[index]) {break;}cur = cur->next[index].get();// 如果存在末尾if (cur->index != -1) {// 更新结果集合result[cur->index].push_back(i);}}}return result;}
};

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

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

相关文章

【CT】LeetCode手撕—88. 合并两个有序数组

目录 题目1- 思路2- 实现⭐88. 合并两个有序数组——题解思路 2- ACM实现 题目 原题连接&#xff1a;88. 合并两个有序数组 1- 思路 模式识别 模式1&#xff1a;两个有序数组合并 ——> 双指针模式2&#xff1a;返回结果填充到 nums1[mn] ——> 需要开辟新的数组空间 …

lxml库在爬虫领域的贡献及应用

重头戏lxml库里面的xpath 一段代码给各位开开胃 这段代码首先导入了lxml库中的etree模块&#xff0c;然后定义了一个包含HTML内容的字符串html。接着&#xff0c;我们使用etree.HTML()函数解析这个HTML字符串&#xff0c;得到一个表示整个HTML文档的树形结构。最后&#xff0c;…

qt 实现模拟实际物体带速度的移动(水平、垂直、斜角度)——————附带完整代码

文章目录 0 效果1 原理1.1 图片旋转1.2 物体带速度移动 2 完整实现2.1 将车辆按钮封装为一个类&#xff1a;2.2 调用方法 3 完整代码参考 0 效果 实现后的效果如下 可以显示属性&#xff08;继承自QToolButton&#xff09;: 鼠标悬浮显示文字 按钮显示文字 1 原理 类继承…

Folx软件安装教程及最新版下载

简介&#xff1a; Folx Pro是一款适合Mac的专业下载工具也是一款BT下载器&#xff0c;Folx中文版有一个支持Retina显示的现代界面&#xff0c;提供独特的系统排序、存储下载内容与预览下载文件。Folx中文官网提供Folx教程、激活码、下载。 安 装 包 获 取 地 址&#xff1a; …

远程连接管理服务SHH

1.了解服务端和客户端 服务端&#xff1a;提供服务 客户端&#xff1a;享受服务 思考: 我们通过网络是如何找到我们想要访问的服务的? IP(提供服务的服务器)Port(找到相应的服务) 2.了解端口号的设定 说明:端口号只有整数&#xff0c;范围是从0 到65535 1&#xff5e;2…

warning LNK4017: DESCRIPTION 语句不支持目标平台;已忽略

文章目录 warning LNK4017: DESCRIPTION 语句不支持目标平台&#xff1b;已忽略概述笔记备注END warning LNK4017: DESCRIPTION 语句不支持目标平台&#xff1b;已忽略 概述 基于ATL的COM DLL导出函数&#xff0c;无法用__declspec(dllexport)直接在函数上标记为导出函数。 只…

Scala网络编程:代理设置与Curl库应用实例

在网络编程的世界里&#xff0c;Scala以其强大的并发模型和函数式编程特性&#xff0c;成为了开发者的得力助手。然而&#xff0c;网络请求往往需要通过代理服务器进行&#xff0c;以满足企业安全策略或访问控制的需求。本文将深入探讨如何在Scala中使用Curl库进行网络编程&…

MySQL第三方图形化工具:DBeaver

操纵数据库的语言&#xff0c;基于功能划分为4类&#xff1a; 数据定义:DDL(Data Definition Language)库的创建删除、表的创建删除等 数据操纵:DML(Data ManipulationLanguage)新增数据、删除数据、修改数据等 数据控制:DCL(Data ControlLanguage)新增用户、删除用户、密码…

DAY24 回溯算法part01 77. 组合 216.组合总和III 17.电话号码的字母组合

理论基础 #什么是回溯法 回溯法也可以叫做回溯搜索法&#xff0c;它是一种搜索的方式。 在二叉树系列中&#xff0c;我们已经不止一次&#xff0c;提到了回溯&#xff0c;例如二叉树&#xff1a;以为使用了递归&#xff0c;其实还隐藏着回溯 (opens new window)。 回溯是递…

【靶场搭建】-02- 搭建OWASP靶机

1.OWASP靶机介绍 相比较其他靶机&#xff0c;OWASP提供的环境更多&#xff0c;且包含了许多其他靶机的环境&#xff0c;属于性价比比较高的靶机了。 2.下载OWASP 访问以下地址进行下载&#xff1a; https://sourceforge.net/projects/owaspbwa/ 因为OWASP是虚拟机文件&…

函数(上)(C语言)

函数(上&#xff09; 一. 函数的概念二. 函数的使用1. 库函数和自定义函数(1) 库函数(2) 自定义函数的形式 2. 形参和实参3. return语句4. 数组做函数参数 一. 函数的概念 数学中我们其实就见过函数的概念&#xff0c;比如&#xff1a;一次函数ykxb&#xff0c;k和b都是常数&a…

跻身中国市场前三,联想服务器的“智变”与“质变”

IDC发布的《2024年第一季度中国x86服务器市场报告》显示&#xff0c;联想服务销售额同比增长200.2%&#xff0c;在前十厂商中同比增速第一&#xff0c;并跻身中国市场前三&#xff0c;迈入算力基础设施“第一阵营”。 十年砺剑联想梦&#xff0c;三甲登榜领风骚。探究联想服务器…

【机器学习】机器学习重要分支——强化学习:从理论到实践

文章目录 强化学习&#xff1a;从理论到实践引言第一章 强化学习的基本概念1.1 什么是强化学习1.2 强化学习的基本组成部分1.3 马尔可夫决策过程 第二章 强化学习的核心算法2.1 Q学习2.2 深度Q网络&#xff08;DQN&#xff09;2.3 策略梯度方法 第三章 强化学习的应用实例3.1 游…

【C语言】解决C语言报错:Format String Vulnerability

文章目录 简介什么是Format String VulnerabilityFormat String Vulnerability的常见原因如何检测和调试Format String Vulnerability解决Format String Vulnerability的最佳实践详细实例解析示例1&#xff1a;直接使用不受信任的输入作为格式化字符串示例2&#xff1a;未验证格…

1949年到2021年中国历年稻谷产量统计报告

数据介绍 数据来源于国家统计局&#xff0c;为1949年到2021年我国每年的稻谷产量数据。 2021年&#xff0c;我国稻谷产量为21284.24万吨&#xff0c;比上年增长0.5%。 数据统计单位为&#xff1a;万吨 我国稻谷产量有多少&#xff1f; 2021年&#xff0c;我国稻谷产量为2128…

springboot与flowable(12):网关服务(包容网关)

一、绘制流程图 包容网关可以看作是排他网关和并行网关的结合体。和排他网关一样&#xff0c;可以在外出顺序流上定义条件&#xff0c;包容网关会解析它们。但是主要的区别是包容网关可以选择多余一条顺序流&#xff0c;这和并行网关一样。包容网关的功能是基于进入和外出顺序流…

3d渲染的类型,渲染100邀请码1a12

3D渲染有不同的类型和方法&#xff0c;它们各有各的优缺点和适用场景&#xff0c;这里我们简单介绍下。 1、离线渲染 离线渲染也被称作预渲染&#xff0c;是指在不考虑时间限制的情况下&#xff0c;生成高质量二维图像或视频的方法。离线渲染通常用于电影、广告、设计等非交互…

回归预测 | Matlab实现NGO-HKELM北方苍鹰算法优化混合核极限学习机多变量回归预测

回归预测 | Matlab实现NGO-HKELM北方苍鹰算法优化混合核极限学习机多变量回归预测 目录 回归预测 | Matlab实现NGO-HKELM北方苍鹰算法优化混合核极限学习机多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现NGO-HKELM北方苍鹰算法优化混合核极限…

ubuntu第三方库离线安装包(.deb离线安装方法;apt离线安装;离线安装deb)(docker离线安装、安装docker安装)

文章目录 方法1&#xff1a;Ubuntu Packages 网站下载离线包&#xff08;失败了&#xff0c;找不到包的可下载源&#xff0c;有的包有&#xff0c;有的包没有&#xff0c;不知道怎么回事&#xff09;操作步骤1. 在有网络的环境中&#xff0c;打开浏览器并访问 Ubuntu Packages …

使用kettle做的数据同步案例

1 mongo同步数据到mysql中 我想把51万8400的计算出来的八字信息&#xff0c;从mongo同步到mysql&#xff0c;看看在mysql中运行会怎么样。 选择mongodb input&#xff0c;这个是在Big Data中。 填写数据库和表 获取到mongodb的字段,获取到mongo的字段&#xff0c;如果某个字段…