KMP 模板
来源:互联网 发布:软件著作权 发明人 编辑:程序博客网 时间:2024/05/22 14:14
KMP 模板
//求子模板串的模式值f[n]的函数
//f[i]表示以i为下标的字符前边有几个跟开头重复的字符
void getFail(char *p, int *f)
{
int m=strlen(p);
f[0]=f[1]=0;
for(int i=1; i<m; ++i)
{
int j=f[i];
while(j && p[i]!=p[j])j=f[j];
f[i+1] = p[i]==p[j]?1+j:0;
}
}
//查找是否匹配函数
bool find(char *T,char *p,int *f)//传入的三个参数分别是主字符串,要比较的子模板串,子模板串的模式值数组
{
getFail(p,f);
int n=strlen(T);
int m=strlen(p);
int j=0;
for(int i=0; i<n; ++i)//循环主串中的字符
{
//如果出现字符不匹配,没必要从头循环,只需要从模式值f[j]查找
while(j && T[i]!=p[j])j=f[j];
if(T[i]==p[j])++j;
if(j==m)//当j==m时,表示找到匹配的字符串
{
return true;
}
}
return false;
}
- KMP模板
- KMP 模板
- kmp模板
- kmp模板
- kmp模板
- KMP模板
- kmp模板
- kmp模板
- KMP 模板
- 【模板】KMP
- KMP模板
- KMP模板
- 【KMP 模板】
- KMP模板
- KMP 模板
- kmp模板
- KMP模板
- KMP 模板
- Fifth calibration example - Calibrating a stereo system
- 如何联机调试和发布程序(99$)
- C++11中的原子操作(atomic operation)
- 这个split 不错 我喜欢的
- windows phone:在Windows Phone中如何显示GIF图片
- KMP 模板
- MAC 使用随笔--显隐文件
- Linux中断(interrupt)子系统之一:中断系统基本原理
- 寻找到了成为技术高手的捷径了
- 摄像头拍照
- GPIO的推挽输出和开漏输出
- sort排序
- openscale函数解析
- 游戏后台的快速开发