关于KMP模式匹配算法 在处理字符串中,我们总是需要判断一个主串S中,是否包含子串T,那么我们怎么能高效率地去做呢? ① 、朴素的模式匹配算法,所谓朴素,就是不讲技巧,暴力枚举,我们先看个例子,例如有个主串 S=”ABCDEFGGGQ”,我们需要去找其中其否含有子串T=”GGGQ”,如果用朴素的模式
分类:
其他好文 时间:
2016-02-01 15:32:51
阅读次数:
189
朴素模式匹配算法
public class Test {
//朴素模式匹配算法
public int Index(String s,String t,int pos){
int i = pos;//主串中第几个位置开始比较
int j = 0;//模式串中的第一个位置
while(i<s.length()&&j<t.lengt...
分类:
编程语言 时间:
2015-10-18 23:17:22
阅读次数:
409
#include
#include
#include
using namespace std;
void Next(const string & pat,vector & next)
{
next.resize(pat.length());
if(pat.length() == 0)
return;
next[0] = -1;
for(size_t pos = 1; pos...
分类:
编程语言 时间:
2015-08-21 00:14:17
阅读次数:
154
串(string)是由零个或多个宇符组成的有限序列,又名叫字符串。定义的解释:
??串中的字符数目n称为串的长度,定义中谈到“有限”是指长度n是一个有限的数值。
??零个字符的串称为空串(null string),它的长度为零,可以直接用两双引号一表示,也可以用希腊Φ字母来表示。
??所谓的序列,说明串的相邻字符之间具有前驱和后继的关系。下面是串的一些概念性东西:??空格串,是只包含空格的串。...
分类:
编程语言 时间:
2015-07-26 19:17:34
阅读次数:
132
/*字符串匹配*/
#include
using namespace std;
void get_next(string T,int *next)
{//朴素算法
int i,j;
i=1;
j=0;
next[1]=0;
while(i<T.length())
{
if(j==0 || T[i]==T[j])
{
i++;
j++;
next[i]=j;
...
分类:
编程语言 时间:
2015-07-01 18:22:16
阅读次数:
140
朴素模式匹配算法的存在大量的重复匹配操作,时间复杂度为O(m*n),其中m表示主串的长度,n表示模式串的长度,但是算法好理解。另外有一种高效的算法,被称为KMP,该算法的目标就是去掉多余的重复匹配过程,但是算法很难理解,主要是通过构造一个next[]数组来实现,可以实现线性的时间复杂度O(m+n),...
分类:
编程语言 时间:
2015-05-07 12:15:10
阅读次数:
137
DescriptionThe French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter'e'. He was a member of the Oulipo group. ...
分类:
编程语言 时间:
2015-04-20 22:27:58
阅读次数:
194
Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由Donald Knuth、Vaughan Pratt、James H. Morris三人于1977年联合发表,故取这3人的姓氏命名此算法。整个KMP的重点就在于当某一个字符与主串不匹配时,我们应该知道j指针要移动到哪里。
如图:C和D不匹配了,我们要...
分类:
编程语言 时间:
2015-01-24 21:28:58
阅读次数:
253
在软考的复习中,看到过几次 字符串的模式匹配算法。看起来挺难的。所以花了点时间查了查关于字符串匹配的算法。下面详细介绍一下KMP模式匹配算法
以及next[j]函数如何计算。...
分类:
编程语言 时间:
2014-10-26 10:20:42
阅读次数:
322
今天我们来聊聊模式匹配算法,什么是模式匹配算法呢,其实就是子字符串匹配上算法。比如字符串a=”abcabc”, 需匹配字符串为b=”abc”,则b在a中出现的第一个位置就是0号位置了,这就算是匹配成功了。在讲kmp算法之前,我们想传统的给你2个字符串,做比较的话,肯定是一个一个的比较,暴力的解决这个问题,我事先也写了一个这样的例子。
/**
* 普通的模式匹配算法
*
* @p...
分类:
其他好文 时间:
2014-10-06 19:34:00
阅读次数:
204