专栏文章
KMP【模板】
算法·理论参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miq71k3d
- 此快照首次捕获于
- 2025/12/04 00:00 3 个月前
- 此快照最后确认于
- 2025/12/04 00:00 3 个月前
CPP
void KMP(string a,string b){
a='-'+a,
b='-'+b;
int n=a.size()-1,m=b.size()-1;
nex[1]=0;
for(int i=2,j=0;i<=m;i++){
while(j>0 && b[i]!=b[j+1]){
j=nex[j];
}
if(b[i]==b[j+1]){
j++;
}
nex[i]=j;
}
for(int i=1,j=0;i<=n;i++){
while(j>0 && b[j+1]!=a[i]){
j=nex[j];
}
if(a[i]==b[j+1]){
j++;
}
if(j==m){
cout<<i-m+1<<'\n';
j=nex[j];
}
}
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...