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

KMP

kmp

以前觉得好难,现在感觉好简单。再次梳理一下。
首先构造next数组用来代表前缀重复最大的长度。如果prelen和i的字符相等那么直接next[i]=prelen+1,同时i和prelen递增;如果不相等,prelen是0直接加入0;如果不是0,那么取next[prelen-1]也就是避免重复比较。然后是正式比较,如果s[i]==p[j]那么说明相等,i和j自增即可;如果不相等,但是j是0说明一开始就不同,直接i++;如果j不是0说明有比较的那么j=next[j-1]避免重复比较。

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>using namespace std;int main()
{int n,m;string p,s;cin >> n >> p >> m >> s;vector<int> next(n,0);//构造nextnext[0] = 0;//初始化第一个为0int prelen = 0;int i = 1;while(i<n){if(p[i]==p[prelen])next[i++]=++prelen;//比较相等那么next为prelen+1,i自增else if(prelen==0)next[i++]=0; //如果是0直接纳入,i自增else prelen = next[prelen-1];  //不是0,取其前缀继续}//比较int j = 0;i = 0;vector<int>res;while(i<m){if(s[i]==p[j]){i++;j++;}//相等二者共同增加else if(j>0) j=next[j-1];//不相等,j大于0那么取前缀else i++;//直接不等,直接增加if(j==n){res.push_back(i-j);j=next[j-1];}//如果达到长度则记录并且更新j}for(int x:res)cout << x << " ";return 0;
}
http://www.jsqmd.com/news/558430/

相关文章:

  • coze-loop真实体验:粘贴Python代码,AI自动重构+详细解释
  • ARM汇编编程实战:5种分支跳转指令的妙用与避坑指南
  • PotPlayer高效录制Switch游戏画面:从采集卡配置到无干扰录制全攻略
  • 如何系统化构建微积分知识体系?开源资源整合指南
  • Qwen3-VL量化版实测:8bit精度仅降0.13%的奥秘
  • 告别Swagger原生UI!用Knife4j给你的SpringBoot API文档做个‘美容’
  • 成都别墅设计品牌东山艺锦全案定制详解:乡村别墅设计公司/别墅设计公司排行榜/别墅设计工作室/四川别墅设计/大宅设计公司排行榜/选择指南 - 优质品牌商家
  • 如何在树莓派上跑通TensorFlow Lite模型?从转换到部署的保姆级教程
  • 故障排除手册:DeOldify部署与运行中的常见错误及解决方案
  • DeerFlow参数详解:vLLM服务日志排查(llm.log/bootstrap.log)实战
  • PyTorch 2.8镜像部署教程:在/workspace中组织项目结构的最佳实践
  • 企业IT必看:PassCore归档后,还有哪些开源AD密码管理替代方案?
  • Linux /tmp 目录特性与应用
  • 避开OpenBCI GUI的坑:手把手教你稳定采集BDF脑电信号,并导入EEGLAB分析
  • Redis:不只是缓存那么简单(一)
  • Wan2.2-I2V-A14B API服务部署教程:Python批量调用文生视频接口详解
  • Kruskal算法求最小生成树
  • Open Interpreter实时流处理:Kafka消费脚本部署案例
  • SDMatte跨平台部署指南:在Windows系统上运行Linux镜像的解决方案
  • open_clip实战指南:从技术原理到商业落地的7个关键步骤
  • LWIP协议栈的“心脏”如何跳动?深入剖析tcpip_thread线程与邮箱调度机制
  • Z-Image-Turbo-辉夜巫女生成参数深度解析:CFG Scale、种子数等对画面的精细控制
  • 5分钟学会Mermaid:用Markdown语法绘制专业图表,提升文档质量10倍
  • CLIP-GmP-ViT-L-14效果展示:天文望远镜深空图→天体类型/距离估算/演化阶段
  • GEMMA-3像素工作站效果展示:复古界面下的惊艳图像理解案例
  • 深度学习入门第一步:PyTorch 2.5环境快速搭建指南
  • ClearerVoice-Studio多采样率:16KHz通话与48KHz录音统一处理架构解析
  • 山东职业竞赛wp2023(arm、cpython)
  • 从SUSTechPOINTS的安装,聊聊自动驾驶数据标注工具的本地化部署痛点
  • 2026四川国产服务器优质厂家推荐榜:最强算力服务器配置/服务器国产厂家/服务器存储厂家/服务器存储报价/服务器存储的价格/选择指南 - 优质品牌商家