news 2026/7/7 19:44:55

【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/7 7:29:52

LobeChat限时折扣倒计时文案

LobeChat&#xff1a;让每个人都能轻松拥有自己的 AI 助手 在今天&#xff0c;构建一个像 ChatGPT 那样的智能对话系统&#xff0c;早已不再是科技巨头的专属能力。随着大语言模型&#xff08;LLM&#xff09;技术的普及&#xff0c;越来越多开发者和企业开始尝试打造属于自己的…

作者头像 李华
网站建设 2026/7/7 5:26:39

LobeChat证书管理生命周期

LobeChat证书管理生命周期 在当今 AI 应用快速落地的浪潮中&#xff0c;部署一个大语言模型&#xff08;LLM&#xff09;聊天助手早已不再是“能不能跑起来”的问题&#xff0c;而是“能否安全、稳定、可持续地运行”的挑战。前端界面是否美观&#xff1f;功能是否丰富&#xf…

作者头像 李华
网站建设 2026/7/7 16:06:59

一款高颜值SSH终端工具!基于Electron+Vue3开发,开源免费还好用

经常和服务器打交道的开发者&#xff0c;对SSH终端工具一定不陌生。但市面上不少工具要么界面老旧&#xff0c;要么功能繁杂&#xff0c;想要找一款兼顾颜值、性能和实用性的工具并不容易。今天就给大家推荐一款开源宝藏工具——Shellify&#xff0c;用现代化技术栈打造&#x…

作者头像 李华
网站建设 2026/7/6 18:35:48

订货系统选型核心五要素

在企业数字化经营进程中&#xff0c;订货系统作为连接企业与经销商、管控订货全链路的核心工具&#xff0c;其适配性直接影响订单处理效率、库存周转速度及客户合作体验&#xff0c;因此科学选型至关重要。优质订货系统需精准匹配企业业务场景、兼顾稳定性与扩展性&#xff0c;…

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

16、单元测试:保障软件质量的有效手段

单元测试:保障软件质量的有效手段 一、单元测试概述 在软件复杂度不断提升、开发进度日益紧张的今天,开发者们一直在寻找更高效地创建和开发应用程序的方法。测试往往会消耗大量的时间,因此如何简化测试流程成为了大家关注的焦点。单元测试作为一种常见的策略应运而生,它…

作者头像 李华
网站建设 2026/7/6 14:41:48

洛谷 P5556 圣剑护符 题解

题目概括&#xff1a; 给定一棵 nnn 个节点的树&#xff0c;每个节点有一个初始权值 viv_ivi​&#xff08;范围为 [0,230)[0, 2^{30})[0,230)&#xff09;。需要处理 qqq 次操作&#xff0c;操作分为两种&#xff1a; 修改操作 Update x y z&#xff1a;将节点 xxx 到 yyy 的简…

作者头像 李华