字符串匹配 KMP(模板)
2017-06-20 21:13
330 查看
电脑准备重装一波,把模板都发一下
struct KMP
{
int a[1000100];
int b[11111];
int n,m;
int nextval[11111];
void init()
{
memset(nextval,0,sizeof(nextval));
}
void get_next() //next跳表
{
for(int i=1;i<m;i++)
{
int j=nextval[i];
while(j&&b[j]!=b[i])
j=nextval[j];
nextval[i+1]=b[i]==b[j]?j+1:0;
}
}
int find_aim() //匹配长度
{
int j=0;
for(int i=0;i<n;i++)
{
while(j&&b[j]!=a[i]) j=nextval[j];
if(b[j]==a[i]) j++;
if(j==m) return i-m+2;
}
return -1;
}
}T;
struct KMP
{
int a[1000100];
int b[11111];
int n,m;
int nextval[11111];
void init()
{
memset(nextval,0,sizeof(nextval));
}
void get_next() //next跳表
{
for(int i=1;i<m;i++)
{
int j=nextval[i];
while(j&&b[j]!=b[i])
j=nextval[j];
nextval[i+1]=b[i]==b[j]?j+1:0;
}
}
int find_aim() //匹配长度
{
int j=0;
for(int i=0;i<n;i++)
{
while(j&&b[j]!=a[i]) j=nextval[j];
if(b[j]==a[i]) j++;
if(j==m) return i-m+2;
}
return -1;
}
}T;
相关文章推荐
- P3375 【模板】KMP字符串匹配(全程注释,简单易懂)
- 洛谷P3375 - 【模板】KMP字符串匹配
- AC日记——【模板】KMP字符串匹配 洛谷 3375
- ACM常用模板——字符串匹配——KMP
- 字符串匹配--扩展KMP模板
- [kmp] hdu1711 字符串匹配模板
- P3375【模板】KMP字符串匹配
- P3375 【模板】KMP字符串匹配
- 洛谷 P3375 【模板】KMP字符串匹配
- 洛谷P3375 - 【模板】KMP字符串匹配
- luogu P3375 【模板】KMP字符串匹配
- 洛谷P3375【模板】KMP字符串匹配
- KMP字符串匹配算法模板代码
- P3375 【模板】KMP字符串匹配
- 洛谷 3375_[模板]KMP字符串匹配_KMP
- Luogu 3375 【模板】KMP字符串匹配(KMP算法)
- kmp-洛谷P3375 【模板】KMP字符串匹配
- [洛谷3375]【模板】KMP字符串匹配
- luogu P3375 【模板】KMP字符串匹配
- 【模板】KMP字符串匹配