码迷,mamicode.com
首页 >  
搜索关键字:主串    ( 269个结果
KMP算法解决字符串匹配
该算法由D.E.Knuth ,J.H.Morris和 V.R.Pratt提出,用于解决字符串匹配问题。思想:设目标串(主串)为s,模式串为t ,并设i指针和j指针分别指示目标串和模式串中正待比较的字符,设i和j的初值均为0。若有s[i]=t[j],则i和j分别加1。否则,i不变,j退回到j=next[j-1]的位置,再比较s[i]和t[j],若相等,则i和j分别加1。否则,i不变,j再次退回到j=n...
分类:编程语言   时间:2015-08-27 23:14:15    阅读次数:211
计算子串在主串中的位置及其优化(KMP算法)
问题描述:设置一个起始位置,寻找主串中第一次出现子串的首位置。 算法实现: int index(string str,string substr,int pos) { int i=0,j=0; int slen,sslen; i=pos; slen=str.length(); sslen=substr.length(); while(i+sslen<slen) { whi...
分类:编程语言   时间:2015-08-26 22:33:43    阅读次数:309
KMP原理
今天把kmp的原理回顾了一下,于是做一下总结感谢该作者给出详尽的解释http://www.cnblogs.com/yjiyjige/p/3263858.html简单阐明一下原理KMP在寻找字符串匹配的过程中 保持主串的指针不动 每次匹配不成功 只对模式串进行处理“接下来我们自己来发现j的移动规律:如...
分类:其他好文   时间:2015-08-26 17:40:46    阅读次数:136
【数据结构】-串
一、串的基本概念 串(字符串):是由零个或多个字符组成的有限序列,一般记为: s=‘a1a2…an’(n>=0) s是串名,单引号括起来的是串的值,ai(1<=i<=n)可以是字母、数字或其他字符。 串中字符的数目n称为串的长度; 长度为零的串称为空串; 串中任意个连续的字符组成的子序列称为子串; 包含子串的串相应的称为主串; 字符在序列中的序号称为该字符在串中的位置; 子串在主串...
分类:其他好文   时间:2015-08-25 16:50:09    阅读次数:125
KMP算法详解
KMP KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普 拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目 的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。 接下来我们先分析三张图,S代表主串...
分类:编程语言   时间:2015-08-21 21:29:17    阅读次数:298
poj 3461 Oulipo(kmp统计子串出现次数)
题意:统计子串出现在主串中的次数思路:典型kmp#include#include#includeusing namespace std;int next[10005];void GetNext(char t[]){//求next数组 int j,k,len; j=0; k=-1; ...
分类:其他好文   时间:2015-08-20 22:27:57    阅读次数:199
hdu5384(2015多校8)--Danganronpa(AC自动机)
题目链接:点击打开链接 题目大意:给出n个字符串主串,和m个模式串,定义f(A,B)为B串在A串中出现的次数,现在对每一个A串都计算 ∑f(Ai,Bj) (1 对m个模式串建立AC自动机,然后每个主串都放入自动机中,统计主串包含多少B内的串,并输出。 注意: 标记的时候直接累加值,可能会有多个模式串相同。 统计的时候,使用fail一直要回到根。 #include #include...
分类:其他好文   时间:2015-08-13 22:19:08    阅读次数:132
KMP算法中心思想
KMP是一种高效的字符串查找算法,主要用于在主串中查找一个特定字串(模板)出现的位置(或是否出现)。 朴素字符串查找算法主要是通过逐次比较来实现的,在主串中找到一个位置I和字串起始字符一样时,便顺次比较后续字符。若匹配成功,则输出相应结果。若不匹配,则从位置I的下一个位置I+1开始比较。若主串长度为M,字串长度为N的最多需要比较M*N次。 KMP比较主要的改进是,充分利用已经比较的结果和字符串...
分类:编程语言   时间:2015-08-13 18:03:45    阅读次数:153
返回主串中子串及其后的所有字符
题目:           写一个函数模拟c++中的strstr函数。该函数的返回值是主串中字符子串的位置以后的所有字符。请不要使用任何c程序已有的函数来完成。 #include using namespace std; const char* strstr1(const char* string, const char* strCharSet) { for (int i = ...
分类:其他好文   时间:2015-08-06 22:23:12    阅读次数:218
串的模式匹配
在串的各种操作中,串的模式匹配是经常用到的一个算法。串的模式匹配也称为子串的定位操作,即查找子串在主串中出现的位置。 1.经典的模式匹配算法Brute-Force。 2.KMP算法。 #include #include #include #define MAXSIZE 60 typedef struct { char ch[MAXSIZE];...
分类:其他好文   时间:2015-07-27 23:10:08    阅读次数:124
269条   上一页 1 ... 17 18 19 20 21 ... 27 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!