news 2026/7/2 2:18:33

【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/7/1 7:32:17

实体零售推荐哪些AI搜索排名(GEO优化)做的好的企业?

实体零售如何借力AI搜索排名&#xff08;GEO优化&#xff09;突围&#xff1f;深度解析领先实践与未来路径在流量红利见顶、线上冲击持续的当下&#xff0c;实体零售的生存与发展空间备受挤压。传统的“守店待客”模式难以为继&#xff0c;主动在数字世界中被目标客群“发现”与…

作者头像 李华
网站建设 2026/6/25 1:23:12

4、Qt 应用程序主窗口开发全解析

Qt 应用程序主窗口开发全解析 1. 主窗口概述 在开发应用程序时,很多时候不能仅依赖对话框与用户交互,大多数应用程序是围绕文档构建的,这时主窗口就发挥了重要作用。主窗口是应用程序的顶级窗口,它可以包含菜单栏、工具栏、状态栏,还能提供区域用于停靠工具箱和其他支持…

作者头像 李华
网站建设 2026/7/1 10:04:53

2025-12-17 全国各地响应最快的 BT Tracker 服务器(移动版)

数据来源&#xff1a;https://bt.me88.top 序号Tracker 服务器地域网络响应(毫秒)1http://123.245.62.88:6969/announce辽宁沈阳移动112http://60.249.37.20:6969/announce广东惠州移动383udp://211.75.210.221:80/announce广东佛山移动394udp://45.9.60.30:6969/announce北京…

作者头像 李华
网站建设 2026/6/30 8:12:39

一键保存任何内容,狂揽 2.6 万 GitHub Star!

前几天&#xff0c;刚收藏了一篇技术干货文章&#xff0c;想着周末有空再细读&#xff0c;结果等点开的时候&#xff0c;屏幕上只剩下冷冰冰的 “404 Not Found”。心情颇为复杂&#xff0c;说到底&#xff0c;别人的服务器我们也控制不了&#xff0c;只有存到自己硬盘里的东西…

作者头像 李华
网站建设 2026/7/1 19:26:56

让你的手机更懂你,小米澎湃OS 3“热点编译加速”技术揭秘

你是否有过这样的体验&#xff1a;打游戏团战正酣却突然卡顿&#xff0c;举起手机想捕捉完美光线却错过瞬间&#xff1f;这些恼人的体验&#xff0c;往往不是单一因素造成的 —— 除了软件的功能、硬件的性能&#xff0c;“编译器”的作用&#xff0c;也在悄悄影响着用户的使用…

作者头像 李华
网站建设 2026/6/26 7:25:30

12月21日,杭州见!

Datawhale线下 聚会&#xff1a;Datawhale x 魔搭社区 x AMD开发者嘉年华01这场见面&#xff0c;让端侧AI释放开发者创造力Datawhale X 魔搭社区 X AMD 开发者嘉年华来了&#xff01;这次开发者嘉年华汇聚多位重量级嘉宾&#xff0c;包括AMD 高级副总裁、大中华区总裁潘晓明、A…

作者头像 李华