AcWing-KMP
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNGNjZmI3MGI2YjQ2NGYyNDk4OTYzNzBmZGJmY2NlYjgucG5n这里只能死记硬背了,Next数组的获取过程是p和p本身比力,kmp算法是s和p比力,然后两个for内里的代码都很相似,根本就是死记硬背也题目不大,这里下标是从1开始盘算。我的别的一篇文章讲的是从0开始盘算,根本都差不多,可以类比学习---------------------------->KMP算法解说
#include<iostream>
using namespace std;
#define LEN 1000086
int n,m,ne;
char p,s;
int main(){
cin>>n>>p+1>>m>>s+1;
for(int i=2,j=0;i<=n;++i){
while(j&&p!=p) j=ne;
if(p==p) ++j;
ne=j;
}
for(int i=1,j=0;i<=m;++i){
while(j&&s!=p) j=ne;
if(s==p) ++j;
if(j==n){
cout << i-n<<' ';
j=ne;
}
}
return 0;
}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金
页:
[1]