/** * 假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置 如果j = -1,或者当前字符匹配成功(即S[i] == * P[j]),都令i++,j++,继续匹配下一个字符; 如果j != -1,且当前字符匹配失败(即S[i] != P[j]),则令 i 不变,j = * next[j]...
分类:
编程语言 时间:
2014-07-31 16:28:46
阅读次数:
255
在介绍KMP算法之前,先介绍一下BF算法。BF算法 BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。举例说明:...
分类:
其他好文 时间:
2014-07-30 23:34:45
阅读次数:
316
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1686又是一道字符串匹配问题,同样也是KMP算法,就是多记一下模式串的重复频率。 1 #include 2 #include 3 const int maxn=10000+5,maxm=1000000+1...
分类:
其他好文 时间:
2014-07-29 17:06:22
阅读次数:
132
1 #include 2 #include 3 using namespace std; 4 #define max 5000 5 6 int t[max];//目标串 7 int p[max];//模式串 8 int next[max];//前缀函数 9 int n,m;//n为目标串的数目,.....
分类:
编程语言 时间:
2014-07-29 11:59:36
阅读次数:
224
字符串比配问题,通过引入next[]而使效率提高关于next[]数组,是对模式串的特征来构造的;为了确定在匹配不成功时,下次匹配时j的位置,引入了next[]数组,next[j]的值表示P[0...j-1]中最长后缀的长度等于相同字符序列的前缀。在匹配过程称,若发生不匹配的情况,如果next[j]>...
分类:
其他好文 时间:
2014-07-28 14:36:13
阅读次数:
280
BF(Brute Force)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。首先S[1...
分类:
其他好文 时间:
2014-07-27 22:17:29
阅读次数:
227
一.KMP算法是如何针对传统算法修改的用模式串P去匹配字符串S,在i=6,j=4时发生失配:--------------------------------------------------------------------- i=6S: a b a bc a ...
分类:
其他好文 时间:
2014-07-27 21:27:05
阅读次数:
220
求模式串在原串出现次数。#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;const int ...
分类:
其他好文 时间:
2014-07-26 17:01:31
阅读次数:
205
引言
字符串的模式匹配是一种常用的操作。模式匹配(pattern matching),简单讲就是在文本(text,或者说母串str)中寻找一给定的模式(pattern)。通常文本都很大,而模式则比较短小。典型的例子如文本编辑和DNA分析。在进行文本编辑时,文本通常是一段话或一篇文章,而模式则常常是一个单词。若是对某个指定单词进行替换操作,则要在整篇文章中进行匹配,效率要求肯定是很高的。
模式匹配的朴素算法
最简单也最容易想到的是朴素匹配。何为朴素匹配,简单讲就是把模式串跟母串从左向右或从右向左一点一点比较:...
分类:
其他好文 时间:
2014-07-24 10:46:44
阅读次数:
337
题目大意:输入一个T,表示有T组测试数据;每组测试数据包括一个字符串W,T,T长度大于W小于1000000,w长度小于10000,计算W匹配到T中成功的次数;这题很明显要用KMP算法,不然很容易超时,但在使用kmp算法时也要注意,我第一次将匹配成功的位置得到后,循环进入kmp算法,从前一个匹配到的位...
分类:
其他好文 时间:
2014-07-23 12:39:56
阅读次数:
199