做出KMP字符串匹配算法心情也是好好哒,萌萌哒。

感谢黄学长,感谢栋栋!

#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
int p[101];
int main()
{
string a,b;
cin>>a>>b;
int n=a.length(),m=b.length();
a=" "+a;b=" "+b;
int j=0;
for(int i=2;i<=m;i++)
{
while(j>0&&b[j+1]!=b[i])j=p[j];
if(b[j+1]==b[i])j++;
p[i]=j;
}
j=0;
for(int i=1;i<=n;i++)
{
while(j>0&&b[j+1]!=a[i])j=p[j];
if(b[j+1]==a[i])j++;
if(j==m){printf("%d",i-m+1);break;}
}
return 0;
}

转载于:https://www.cnblogs.com/xiaoqi7/p/5224275.html

KMP算法———模板相关推荐

  1. KMP算法模板与解析

    全部数据结构.算法及应用课内模板请点击:https://blog.csdn.net/weixin_44077863/article/details/101691360 将KMP算法,就要先讲讲它是用来 ...

  2. python【数据结构与算法】KMP算法模板(我吐了!)

    import math import cmath import sys import string import heapq import bisect from queue import Queue ...

  3. (转)扩展KMP算法模板

    原理博客插眼:https://www.cnblogs.com/dilthey/p/8620119.html 用途:给出两个字符串s和t,extend[i]代表在字符串s中,以i为起点开始的后缀,与字符 ...

  4. KMP算法之 好理解的模板

    主要作用:能够在线性复杂度内求出一个串在另一个串的所有匹配位置. 说明:设模板串是 pattern, 令 next[i] = max{k|[pattern[0..k−1] = pattern[i−k+ ...

  5. 【算法模板】轻松学会KMP算法

    目录 0.前言 1. 视频理解KMP的流程 2.代码实现 3.结束语 0.前言 KMP算法是在字符串中寻找字串的算法,时间复杂度为O(n). KMP算法中有两个关键因素: next数组 匹配机制 1. ...

  6. (转)KMP算法原理讲解及模板C实现

    原作者:v_JULY_v 1. 引言 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱.所以一直想找机会重新写下KMP,但苦于一直以来对KMP的理解始终不 ...

  7. 『ACM--算法--KMP』信息竞赛进阶指南--KMP算法(模板)

    简介: KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特-莫里斯-普拉特操作(简称KMP算法).KMP算法的核心是利用匹 ...

  8. KMP算法详解P3375 【模板】KMP字符串匹配题解

    KMP算法详解: KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt(雾)提出的. 对于字符串匹配问题(such as 问你在abababb中有多少个 ...

  9. 0x15.基本数据结构 — 字符串 (KMP算法(含详细证明)和最小表示法)

    目录 一.KMP模式匹配 1.引理: 2.引理证明: 3.使用优化的算法计算nextnextnext数组: 4.luogu P3375 [模板]KMP字符串匹配 5.UVA1328 Period 6. ...

最新文章

  1. Windows下安装Redis服务
  2. Android开发架构规范
  3. 4计算准确率_PyTorch实现,GitHub 4000星:这是微软开源的计算机视觉库
  4. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十三║Vue实战:Vuex 其实很简单
  5. 如何读入一个多行的txt文件,给每行的数据加双引号并保存为一行输出
  6. testTry-catch和catch中的应用程序恢复
  7. 基于python+opencv的图像目标区域自动提取
  8. python自动化办公-python自动化办公?学这些就够用了
  9. 这个锅,运维来背?忘记续期 HTTPS 证书,网易邮箱大量用户无法使用
  10. 如何用 10 句话激怒程序猿?
  11. Debit credit problem
  12. http://blog.csdn.net/wangyoujin321/article/details/51472606
  13. 不吼不叫:该如何平静地和孩子合作?
  14. uci2019计算机录取,最新!加州大学公布2019年新生录取数据!
  15. 程序员做自媒体,龙叔教你怎么快速成为优秀博主【CSDN篇】
  16. 小程序使用wxs处理手机号
  17. 原生JS音乐歌词播放页面
  18. smarty-wap端
  19. unity5-GI是什么?
  20. html 标签 简写_HTML缩写标签

热门文章

  1. LeetCode算法入门- Merge Two Sorted Lists -day15
  2. 怎么使用mysql打表_MySQL的表使用
  3. 血型算法php,血型排行榜!(真的很准)
  4. java 像素级碰撞检测,» 像素级碰撞检测类
  5. 在c语言程序中无论是整数还是实数,C语言基础题及参考答案
  6. ❤️六W字《计算机基础知识》(三)(建议收藏)❤️
  7. html+字体图标找不到字体,bootstrap中不显示字体图标问题怎么解决?
  8. 选择排序--Java
  9. Java 输出链表的第一个和最后一个元素
  10. C++类成员的访问权限以及类的封装