加载中…
  
博文
标签:

kmp

杂谈

1. KMP算法:对应长度为n的目标串和长度为m的模式串,kmp算法的复杂度是o(m+n).其中o(m)的时间用于需找模式串的失效函数,o(n)的时间用于匹配。算法思想说起来比较麻烦,但是并不复杂,参考数据结构的书吧。

2. 下面给出kmp的代码search()和子串出现次数代码count().其中count()的复杂度是o(n),整体复杂度也是o(m+n).

 

 

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

void fail(const char* pat, int* f){
    const int len=strlen(pat);
    f[0]=-1;
    for (int j=1; j < len; j++){
        if (pat[j] == pat[f[j-1]+1])
            f[j] = f[j-1]+1;
        else {
            int i=f[j-1];
       

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有