kmp算法

原创 2018年04月15日 00:14:10

简介

代码实现

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string>
#include <set>
#include <string.h>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <iostream>
#include <queue>
#include <list>
using namespace std;

// 求next矩阵
vector<int> getNext(string p)
{
    vector<int> result( p.size(), 0 );
    int k = 0;
    for (int i = 1; i < p.size(); i++)
    {
        while (k > 0 && p[k] != p[i])
            k = result[k-1];
        if (p[k] == p[i])
            k++;
        result[i] = k;
    }
    return result;
}
// kmp的具体过程,即判断p是否为s的子串
bool kmp(string s, string p)
{
    vector<int> next = getNext( p );
    int k = 0;
    for (int i = 0; i < s.size(); i++)
    {
        while (k != 0 && p[k] != s[i])
            k = next[k-1];
        if (p[k] == s[i])
            k++;
        if (k == p.size())
            return true;
    }
    return false;
}

int main()
{
    auto ret = kmp( "ababxbababcadfdsss", "fds" );
    system("pause");
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012526003/article/details/79945939

K M P 算 法 . p p t

  • 2011年08月10日 18:08
  • 2.29MB
  • 下载

kMP算法JavakMP算法JavakMP算法JavakMP算法Java

  • 2009年10月08日 12:10
  • 42KB
  • 下载

KMP算法算法 KMP算法 KMP

  • 2010年05月22日 17:28
  • 1KB
  • 下载

KMP算法详解 KMP算法详解

  • 2010年08月10日 14:05
  • 33KB
  • 下载

KMP算法学习教程KMP算法学习教程

  • 2011年05月19日 22:13
  • 284KB
  • 下载

KMP算法的时间复杂度

在学习程杰老师的大作《大话数据结构》时,遇到KMP算法始终没有看明白, 在网上搜索后找到并阅读了阮一峰老师对KMP算法的解释后,茅塞顿开,便按照文章思想编写了算法代码, 算法代码链接:http://b...
  • Register_man
  • Register_man
  • 2017-07-14 15:27:44
  • 2245

kmp算法及改进

int pmatch(char *string,char *pat) { int i=0,j=0; int lens=strlen(string);//主字符串 int len...
  • m0_37787222
  • m0_37787222
  • 2017-09-09 11:42:37
  • 215

KMP算法详解KMP算法详解

  • 2011年03月19日 20:15
  • 51KB
  • 下载

KMP算法最浅显理解——一看就明白

说明 KMP算法看懂了觉得特别简单,思路很简单,看不懂之前,查各种资料,看的稀里糊涂,即使网上最简单的解释,依然看的稀里糊涂。 我花了半天时间,争取用最短的篇幅大致搞明白这玩意到底是啥。 这里不...
  • starstar1992
  • starstar1992
  • 2017-02-07 17:41:08
  • 72718

如果你看不懂KMP算法,一定要看看这个视频!!!!!!!!!!!虽然讲的慢,但是很详细!!!!

如果你看不懂KMP算法,一定要看看这个视频!!!!!!!!!!!虽然讲的慢,但是很详细!!!! 上:http://v.youku.com/v_show/id_XODYxNjExODQ...
  • A_Prophet
  • A_Prophet
  • 2017-04-22 16:36:11
  • 1778
收藏助手
不良信息举报
您举报文章:kmp算法
举报原因:
原因补充:

(最多只允许输入30个字)