今天又看了一遍KMP,感觉真的懂了...就来这儿发一下心得吧.KMP算法其实就是暴力的改进版.让我们看看暴力的匹配.Original string: ababababcbbababababcPattern string: abababc步骤:ababababcbbababababcabababc.....
分类:
其他好文 时间:
2014-08-29 14:28:37
阅读次数:
169
题意:找到一个最长的子串,使得原串的前缀和后缀都和这个子串相同,且3者无交叉。
对原串求一次next,我们发现若顺着next[n]走下去,得到的前缀一定和原后缀匹配,这样就满足了前后相等。
然后只要暴力查找中间是否出现了这个前后缀就够了。
理论复杂度n^2,但是实际不会出现那种情况。
#include
#include
#include
using namespace std;
#defi...
分类:
其他好文 时间:
2014-08-28 11:32:17
阅读次数:
171
1. 到該帖子 http://www.kmplayer.com/forums/showthread.php?t=8755 下載附件中的4個檔案放到KMP 根 目錄下(此文件已在附件中上传)2.於KMP中按F2 過濾器控制->分離器 (我的是繁中 其它語系不清楚是怎譯)RealMedia一項用Gasb...
var str="abcbababcbababcbababcabcbaba";//主串var ts="bcabcbaba";//子串function BF(s,t){//BF算法 var i=0,j=0,v=-1; while(i=t.length){ ...
分类:
编程语言 时间:
2014-08-26 13:27:06
阅读次数:
277
kmp算法的应用不懂dev-c++搞什么,某个循环下不去,一直卡在那里....或许他今天心情不好?明天再试试吧...不浪费时间纠结这个了这题就是很裸的kmp算法的应用啦...模板题然后顺便学习了一下如何将数字转成字符串#includeitoa(num,a,10)注意这里的a是字符串或是字符数组,不能...
分类:
其他好文 时间:
2014-08-26 09:48:05
阅读次数:
195
刷vj的时候遇到一个kmp算法,就学习了一下看了某位大神的清楚解释略有领会看了一遍之后,可以清楚的知道 void kmp 的模拟过程,就是j指针的运动情况但是j指针的运动是如何具体的实现,这其实也就是kmp算法的核心kmp算法和朴素算法的区别就在于这个前缀函数getnext有点类似于熟悉的邻接表啊h...
分类:
其他好文 时间:
2014-08-25 22:40:44
阅读次数:
211
#include#include#includeusing namespace std;void GetNext(char *str,int next[]){ int j,k; j=0;k=-1;next[0]=-1; while(str[j]!='\0') { ...
分类:
其他好文 时间:
2014-08-25 20:50:34
阅读次数:
204
/*
* KMP 模式匹配算法
*/
#include
#include
using namespace std;
/*
* 计算模式串的next数组
* 模式串既做主串,又做模式串,进行匹配
* 时间复杂度为O(m),m为模式串的长度
*/
void countNext(char* strPattern, int len, int* next)
{
int i = 0, j...
分类:
其他好文 时间:
2014-08-25 17:01:04
阅读次数:
214
/** * Created by xie on 14-8-24. */public class KMP { private String pat; private int M; private int R=256; private int dfa[][]; public...
分类:
其他好文 时间:
2014-08-24 15:25:32
阅读次数:
309
/** * Created by xie on 14-8-24. */ public class KMP { private String pat; private int M; private int R=256; private int dfa[][]; public KMP(String pa...
分类:
其他好文 时间:
2014-08-24 15:22:42
阅读次数:
227