本文简要谈一下串的模式匹配。主要阐述BF算法和KMP算法。力求讲的清楚又简洁。
一 BF算法
核心思想是:对于主串s和模式串t,长度令为len1,len2, 依次遍历主串s,即第一次从位置0开始len2个字符是否与t对应的字符相等,如果完全相等,匹配成功;否则,从下个位置1开始,再次比较从1开始len2个字符是否与t对应的字符相等。。。。
BF算法思路清晰简单,但是每次匹配不成功时都要回...
分类:
编程语言 时间:
2015-05-26 23:30:56
阅读次数:
430
串,字符串是由零个或多个字符组成的有限序列。字符的数目称为串的长度。长度为零的串称为空串。串中任意个连续的字符组成的子序列称为该串的子串。包含子串的串称为主串。字符在串中的序号称为该字符在串中的位置...
分类:
其他好文 时间:
2015-05-23 18:48:45
阅读次数:
117
题目大意:
给你N个模式串(编号为1~N)。接下来给你M个主串。问:主串中出现的模式串的编号。
思路:
和HDU2222一样。都是求文本串(主串)中出现的模式串。不同的是这道题要求输出的是模式
串的编号。用Val[]来保存模式串的编号id。同时注意字符为ASCII码可见字符,即32~127共
95个。其实定义95就可以了,我这里定义了128,不过没什么影响。...
分类:
其他好文 时间:
2015-05-23 01:23:22
阅读次数:
230
KMP算法一开始学起来要被绕晕,但事实上,只要掌握其中逻辑思路,还是很好学的。我们设主串为S,子串为a现在第一部分两者匹配,也就是说,S串的打钩部分与a串打钩部分是完全一样的,但是,S【i】与a【k】是不相同的。如果按照常规思路,我们只会把a串往后移一个(朴素算法的过程也可以这么理解),但这样时间上...
分类:
编程语言 时间:
2015-05-17 10:45:50
阅读次数:
166
串是由零个或多个字符组成的有限序列。串中字符的个数称为串的长度。
串中任意个连续的字符组成的子序列称为该串的子串。包含子串的串相应地称为主串。通常称字符在序列中的序号为该字符在串中的位置。子串的首字符在主串中首次出现的位置定义为子串在主串中的位置。
串的逻辑结构和线性表十分相似,区别仅仅在于串的数据对象约束为字符集。然而两者的基本操作有很大差别。线性表中,基本以单个元素来进行操作;而串中多半以...
分类:
其他好文 时间:
2015-05-14 08:46:08
阅读次数:
123
串的概念什么是串呢?
串(String):由零个或多个字符组成的有限序列。记为:s=’a1a2…an’(n≥0)
s为串名, ’a1a2…an’为串值,n为串的长度。
子串在主串中的位置:以子串的第一个字符在主串中的位置来表示
串相等:当且仅当两个串的串值相等(两个串的长度相等,并且各个对应的字符也都相等
串的数据类型ADT String { D={ ai...
分类:
其他好文 时间:
2015-05-12 00:12:54
阅读次数:
240
概述??kmp算法我觉得有两个关键点:1.计算模式字符串的部分匹配表(这时候,自己跟自己比较)2.匹配主串时候,主串字符只遍历一遍,匹配时候,根据模式串的部分匹配表计算模式串应该移动的位置。kmp算法时间复杂度为O(m+n);下面我实现的算法代码(PHP)理论关于kmp理论部分,这篇文章写得好:http://kb.cnblogs.com/page/176818/。我就不再赘述了。计算部分匹配表fun...
分类:
编程语言 时间:
2015-05-08 09:28:51
阅读次数:
172
朴素模式匹配算法的存在大量的重复匹配操作,时间复杂度为O(m*n),其中m表示主串的长度,n表示模式串的长度,但是算法好理解。另外有一种高效的算法,被称为KMP,该算法的目标就是去掉多余的重复匹配过程,但是算法很难理解,主要是通过构造一个next[]数组来实现,可以实现线性的时间复杂度O(m+n),...
分类:
编程语言 时间:
2015-05-07 12:15:10
阅读次数:
137
广义后缀自动机:
传统后缀自动机是解决单个主串的匹配问题,广义后缀自动机可以用来解决多个主串的匹配问题。...
分类:
其他好文 时间:
2015-05-04 18:20:02
阅读次数:
628
/*
*字符串的朴素匹配
通过每一个字母对应着主串
进行一次的进行比较,知道
其中的一个串的所有字母都匹配成功
*/
#include
#include
#include
#include
using namespace std;
int index(char *a, char *b)
{
int tarindex = 0;
while(a[tarindex] != '\0'...
分类:
编程语言 时间:
2015-05-03 19:06:06
阅读次数:
158