当前位置: 首页 > news >正文

【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)

http://www.zskr.cn/news/113602.html

相关文章:

  • 从告警风暴到智能运维:keep+Prometheus构建企业监控新范式
  • 一个让你像聊天一样做PPT的AI工具
  • LobeChat证书管理生命周期
  • 一人独角兽公司的Agent:基于国产多模型 #竞赛发布
  • 3、Qt 界面开发:小部件与布局全解析
  • 4、Qt 应用程序主窗口开发全解析
  • 6、Qt 自定义小部件开发全解析
  • 让你的手机更懂你,小米澎湃OS 3“热点编译加速”技术揭秘
  • 正式裁员30000人,赔偿N+4!
  • 推动差异化连接落地,这家运营商的经验值得参考!
  • 投递 2 天,拿下 Offer!
  • 分享几个嵌入式软件开源项目,值得深度复刻!
  • 产品经理和我说“这个需求是老板要做的”,你猜我会怎么怼回去?(说说我自己的故事...)
  • 【API 设计之道】06 结构化错误处理:RFC 7807 与错误模型的最佳实践
  • LobeChat智谱ChatGLM接入全流程:Zhipu AI API对接
  • 12月21日,杭州见!
  • Spring AI 最新实战系列(一)完成一个简单的AI项目
  • 思考与练习之答案与解析(第四章 程序组成与输入输出)
  • 终极Kafka-UI快速部署指南:5分钟搞定可视化监控
  • 人机关系中的不可公度性
  • 第一部分:类和对象(中)— 取地址运算符重载
  • NVIDIA没想到会间接干掉中国中低端手机,AI横扫一切!
  • Mem Reduct内存管理终极指南:解决电脑卡顿的完整教程
  • 电脑c盘内存满了怎么清理内存 释放空间不求人
  • 政务智能体发展研究报告(附下载)
  • UniExtract2万能文件解压工具:从入门到精通的全方位指南
  • 暗黑破坏神2存档编辑器终极指南:从零基础到精通进阶
  • LobeChat安全性评估:数据隐私保护如何做到位?
  • EmotiVoice语音合成在心理咨询机器人中的应用潜力
  • EmotiVoice语音合成在电子宠物产品中的情感互动设计