KMP算法
Posted programyang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KMP算法相关的知识,希望对你有一定的参考价值。
#include<iostream> #include<algorithm> #include<vector> #include<string> using namespace std; int main(void) int n, m; string p,s; cin>>n>>p; cin>>m>>s; vector<int>ne(n); ne[0]=-1; int j=-1; for(int i=1;i<n;i++) while(j>-1&&p[i]!=p[j+1])j=ne[j]; if(p[i]==p[j+1])j++; ne[i]=j; j=-1; for(int i=0;i<m;i++) while(j>-1&&s[i]!=p[j+1])j=ne[j]; if(s[i]==p[j+1])j++; if(j==n-1) cout<<i-n+1<<‘ ‘; // j=ne[j]; return 0;
其中P是要查找的字符串
以上是关于KMP算法的主要内容,如果未能解决你的问题,请参考以下文章