kmp算法
来源:互联网 发布:mac os 安装 websphere 编辑:程序博客网 时间:2024/04/27 17:53
void GetFailure(const char* pat,int failure[])
{
failure[0] = -1;
int len = strlen(pat);
int j;
for (int i = 1; i < len ; i++)
{
j = failure[i-1];//表示pat[j]...pat[0] == pat[i-1]...[pati-j-1];
while (pat[i] != pat[j+1]&&j>=0)
{
j = failure[j];
}
if (pat[i] == pat[j+1])
{
failure[i] = j+1;
}
else
{
failure[i] = -1;
}
}
}
int Kmp(const char* s,const char* pat)
{
int sl = strlen(s);
int pl = strlen(pat);
int*failure = new int[pl];
GetFailure(pat,failure);
int i,j;
for ( i = 0,j = 0; i < sl && j < pl; i++)
{
while (s[i] != pat[j]&& j>0)
{
j = failure[j -1]+1;
}
if (s[i] == pat[j])
{
j++;
}
}
delete []failure;
return j == pl ? i-pl :-1;
}
- KMP算法详解 【KMP】
- 【KMP】KMP算法模板
- KMP hihoCoder1015 KMP算法
- kmp算法
- KMP算法
- KMP算法
- KMP算法
- KMP算法
- KMP 算法
- kmp算法
- KMP算法
- kmp算法
- KMP算法
- KMP算法
- kmp算法
- kmp算法
- KMP算法
- KMP算法
- BREW究竟是什么-BREW本质之我见
- scsi-target-utils、linux用文件虚拟磁盘、linux磁盘snapshot
- BREW高手之路-解析BREW学习过程
- BREW SDK入门
- Seo之全副武装你的Zencart网店
- kmp算法
- 程序员你12点前睡觉了吗?
- VC数据库操作
- 网页关键字密度查询工具
- 2010-03-10
- 怎样使个人博客被Google快速收录
- VSTO C#数组填充EXCEL单元格
- ZEN CART 商品列表如何设置一行显示三个以上商品
- 保存用