码迷,mamicode.com
首页 >  
搜索关键字:主串    ( 269个结果
串模式匹配之BF和KMP算法
本文简要谈一下串的模式匹配。主要阐述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
HDU2896 病毒侵袭【AC自动机】
题目大意: 给你N个模式串(编号为1~N)。接下来给你M个主串。问:主串中出现的模式串的编号。 思路: 和HDU2222一样。都是求文本串(主串)中出现的模式串。不同的是这道题要求输出的是模式 串的编号。用Val[]来保存模式串的编号id。同时注意字符为ASCII码可见字符,即32~127共 95个。其实定义95就可以了,我这里定义了128,不过没什么影响。...
分类:其他好文   时间:2015-05-23 01:23:22    阅读次数:230
KMP算法思路总结
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字符串模式匹配算法
概述??kmp算法我觉得有两个关键点:1.计算模式字符串的部分匹配表(这时候,自己跟自己比较)2.匹配主串时候,主串字符只遍历一遍,匹配时候,根据模式串的部分匹配表计算模式串应该移动的位置。kmp算法时间复杂度为O(m+n);下面我实现的算法代码(PHP)理论关于kmp理论部分,这篇文章写得好:http://kb.cnblogs.com/page/176818/。我就不再赘述了。计算部分匹配表fun...
分类:编程语言   时间:2015-05-08 09:28:51    阅读次数:172
KMP模式匹配算法
朴素模式匹配算法的存在大量的重复匹配操作,时间复杂度为O(m*n),其中m表示主串的长度,n表示模式串的长度,但是算法好理解。另外有一种高效的算法,被称为KMP,该算法的目标就是去掉多余的重复匹配过程,但是算法很难理解,主要是通过构造一个next[]数组来实现,可以实现线性的时间复杂度O(m+n),...
分类:编程语言   时间:2015-05-07 12:15:10    阅读次数:137
广义后缀自动机
广义后缀自动机: 传统后缀自动机是解决单个主串的匹配问题,广义后缀自动机可以用来解决多个主串的匹配问题。...
分类:其他好文   时间:2015-05-04 18:20:02    阅读次数:628
字符串朴素匹配C++实现
/* *字符串的朴素匹配 通过每一个字母对应着主串 进行一次的进行比较,知道 其中的一个串的所有字母都匹配成功 */ #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
269条   上一页 1 ... 19 20 21 22 23 ... 27 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!