news 2026/5/1 8:35:16

【Leetcode】3008. Find Beautiful Indices in the Given Array II

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Leetcode】3008. Find Beautiful Indices in the Given Array II

题目地址:

https://leetcode.com/problems/find-beautiful-indices-in-the-given-array-ii/description/

给定三个字符串s ssa aab bb,还有一个正整数k kk,求所有的i ii满足s [ i : ] s[i:]s[i:]a aa为前缀,并且s ss含有子串b bb,且b bb开始的位置(之一)和i ii的距离小于等于k kk。返回所有满足条件的i ii

先用KMP求出a aab bbs ss中出现的所有位置的下标,这样得出两个下标数组v a v_avav b v_bvb,并且它们都是单调增的。遍历v a v_ava,对于每个i ii,求出j jj使得j jj是满足v b [ j ] ≥ i − k v_b[j]\ge i-kvb[j]ik的最小的数,然后判断v b [ j ] ≤ i + k v_b[j]\le i+kvb[j]i+k是否成立。如果成立,则将i ii加入答案。注意j jj是不需要回退的。代码如下:

classSolution{public:vector<int>beautifulIndices(string s,string a,string b,intk){s=" "+s;a=" "+a;b=" "+b;autof=[](auto&s,auto&p){intm=p.size()-1,n=s.size()-1;vector<int>ne(m+1);for(inti=2,j=0;i<=m;i++){while(j&&p[i]!=p[j+1])j=ne[j];if(p[i]==p[j+1])j++;ne[i]=j;}vector<int>res;for(inti=1,j=0;i<=n;i++){while(j&&s[i]!=p[j+1])j=ne[j];if(s[i]==p[j+1])j++;if(j==m){res.push_back(i-j);j=ne[j];}}returnres;};autova=f(s,a),vb=f(s,b);intj=0;vector<int>res;for(inti:va){intl=i-k,r=i+k;while(j<vb.size()&&vb[j]<l)j++;if(j<vb.size()&&vb[j]<=r)res.push_back(i);}returnres;}};

时空复杂度O ( l s + l a + l b ) O(l_s+l_a+l_b)O(ls+la+lb)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 3:07:03

GitHack深度解析:高效检测Git泄露与源代码恢复的实用工具

在当今网络安全领域&#xff0c;Git泄露已成为企业面临的重要威胁之一。GitHack作为一款专业的Git泄露检测与源代码恢复工具&#xff0c;能够帮助安全研究人员快速识别和利用.git目录暴露问题&#xff0c;从泄露的Git仓库中恢复完整源代码和历史版本文件。 【免费下载链接】Git…

作者头像 李华
网站建设 2026/4/30 23:13:25

一个让你像聊天一样做PPT的AI工具

你有没有遇到过这种情况&#xff1a;明天就要做汇报了&#xff0c;PPT 还是一片空白&#xff1b;脑子里想法一堆&#xff0c;却被排版、配色、找图这些琐事搞得心力交瘁&#xff1f;别急&#xff0c;现在有一款叫 Banana Slides 的 AI 工具&#xff0c;能让你像聊天一样轻松做出…

作者头像 李华
网站建设 2026/5/1 4:04:05

最新最完整的Agent Memory综述!

今天的一篇很热乎的深度好文 "Memory in the Age of AI Agents: A Survey" (AI智能体时代的记忆&#xff1a;综述)&#xff0c;由新加坡国立大学、中国人民大学、复旦大学等多家顶尖机构联合发布&#xff0c;是对当前AI智能体&#xff08;AI Agents&#xff09;记忆机…

作者头像 李华
网站建设 2026/5/1 4:06:49

思考与练习(第三章 Python 编程风格与语法基础)

一、单项选择题&#xff08;本大题共 15 小题&#xff09;1、Python 官方提供了一份名为“Python 之禅”&#xff08;The Zen of Python&#xff09;的设计哲学指南。以下哪一句出自其中&#xff0c;并且最能体现 Python 对代码可读性的重视&#xff1f;① "Fast is bette…

作者头像 李华
网站建设 2026/5/1 4:04:46

LobeChat安全性评估:数据隐私保护如何做到位?

LobeChat安全性评估&#xff1a;数据隐私保护如何做到位&#xff1f; 在企业越来越依赖人工智能处理敏感业务的今天&#xff0c;一个看似简单的问题却成了技术决策的关键瓶颈&#xff1a;我们能不能放心地让AI“看到”内部资料&#xff1f;尤其是当主流大模型服务要求将数据上传…

作者头像 李华