美文网首页
浅谈KMP算法

浅谈KMP算法

作者: 劭星 | 来源:发表于2020-04-11 08:49 被阅读0次

文章转自我的csdn博客

被遮住代码块:

1.

bool check(int pos)

{

    for(int i=pos,j=0;j<m;i++,j++)

        if(text[i]!=pattern[j])

            return false;

    return true;

}

void solve()

{

    //n表示text长度,m表示pattern长度

    int ans=-1;

    for(int i=0;i<n;i++)

        if(check(i))

            ans=i,break;

    cout<<ans<<endl;

}

2.

void get_next()

{

next[0]=-1;//在0这个位置不存在任何最大前后缀(情况三)

int k=-1;

for(unsigned int i=1;i<pattern.size();i++)

{

while(k>-1 && pattern[k+1] != pattern[i])//情况二

k=next[k];

if(pattern[k+1]==pattern[i])//情况一

k++;

next[i]=k;

}

}

3.

void kmp()

{

int k=-1;

for(unsigned int i=0;i<text.size();i++)

{

while(k>-1 && pattern[k+1]!=text[i])

k=ne[k];

if(pattern[k+1]==text[i])

k++;

if(k==pattern.size()-1)

{

return i-k;

}

}

return -1;

}

相关文章

  • 浅谈KMP算法

    文章转自我的csdn博客 被遮住代码块: 1. bool check(int pos) { for(int i...

  • 浅谈KMP算法

    KMP算法是一种用于字符串匹配的算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人...

  • KMP 专题整理

    KMP 学习记录 kuangbin专题十六——KMP KMP 学习总结 朴素 KMP 算法 拓展 KMP 算法(E...

  • 对KMP算法的一些理解

    最近学到KMP算法,下面讲讲对KMP算法的一些个人理解,希望对大家有帮助! 对于KMP算法的理解: 整个KMP算法...

  • KMP算法文章合集

    字符串的查找:朴素查找算法和KMP算法 暴力匹配算法与KMP算法(串的匹配) 字符串查找算法BF和KMP 字符串匹...

  • 串的模式匹配算法

    KMP算法 算法匹配

  • 问答|KMP算法学习笔记

    问题 目录KMP是什么,做什么用的KMP算法的高效体现在哪如何KMP算法的next数组KMP的代码KMP的时间复杂...

  • KMP算法——寻找子串位置

    KMP算法——寻找子串位置 1、KMP算法简介: KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J....

  • 字符串匹配 - KMP算法

    前面我们介绍非常高效的 BM 算法,今天我们介绍另一个非常出名且高效的 KMP 算法。 KMP 算法思想 KMP ...

  • KMP算法及优化

    转载请注明出处: KMP算法及优化 今天看到同学在复习数据结构书上的KMP算法,忽然发觉自己又把KMP算法忘掉了,...

网友评论

      本文标题:浅谈KMP算法

      本文链接:https://www.haomeiwen.com/subject/eteemhtx.html