// s[]是长文本, p[]是模式串, n是s的长度, m是p的长度
求模式串的Next数组:
for (int i = 2, j = 0; i <= m; i ++ )
{
while (j && p[i] != p[j + 1]) j = ne[j];
if (p[i] == p[j + 1]) j ++ ;
ne[i] = j;
}
// 匹配
for (int i = 1, j = 0; i <= n; i ++ )
{
while (j && s[i] != p[j + 1]) j = ne[j];
if (s[i] == p[j + 1]) j ++ ;
if (j == m)
{
j = ne[j];
// 匹配成功后的逻辑
}
}
相关文章
- 12-14用KMP算法实现strStr()
- 12-14[NOI2014]动物园(KMP,字符串)
- 12-14P2375 [NOI2014]动物园 KMP
- 12-14kmp算法基础
- 12-14HDU 2087 剪花布条 KMP
- 12-14【面向打野编程】——KMP算法入门
- 12-14KMP模板
- 12-14hdu2087 剪花布条(kmp)
- 12-14学习KMP算法的一点小心得
- 12-14扩展KMP模板