//串:它是有限字符集中的零个或多个字符组成的有限序列
//一种特殊的线性表
int indexz(String S,String T,int pos)
{
//T为非空串,若主串S中第pos个字符之后存在与T相等
//的子串,则返回第一个这样的子串在S中的位置
if(pos>0)
{
n=StrLength(S);//求出主字符串的长度
m=StrLength(T);//求出非...
分类:
编程语言 时间:
2015-02-02 14:16:53
阅读次数:
199
题目描述
给出一个字符串,求出存在多少子串,使得这些子串既是主串的前缀,又是主串的后缀。从小到大依次输出这些子串的长度。
Sample Input
ababcababababcabab
aaaaa
Sample Output
2 4 9 18
1 2 3 4 5
解题思路:
我们首先知道最大的那个数肯定是主串本身的长度。除去这个最大的应该是next...
分类:
编程语言 时间:
2015-01-30 22:50:46
阅读次数:
260
题目描述
给定主串和模式串,问模式串在主串中出现的次数
Sample Input
3
BAPC
BAPC
AZA
AZAZAZA
VERDI
AVERDXIVYERDIAN
Sample Output
1
3
0
解题思路:KMP算法是找到一个匹配就跳出,这题是要计数,所以我们把KMP算法稍微改一下即可,在找到一个匹配(即j=模式串长度)时计数器++,再...
分类:
编程语言 时间:
2015-01-30 17:45:31
阅读次数:
209
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
一、朴素模式假设我们要从主串S=”goodgoogle"中找到子串T=“google"的位置,步骤如下:i表示主串的当前位置下标,j表示子串的当前位置下标,如上图在第一轮比较(i=1开始)中j=4和i=4的位置不匹配,接下来就要指针回退,从i=2开始比较,如下:如此反复直到比较到 i =(主串长度-子串长度+1)的位置或者 j = 子串的长度 就退出比较循环,上面的主串和子串在比较到i=5的位置就...
分类:
编程语言 时间:
2014-12-07 15:06:49
阅读次数:
229
题意:给若干种个串,再给个主串,然后把主串打乱顺序,使得包含子串尽量多(一种可以有多个,两个之间可以部分重叠)。如第一组数据,ACGT,包含AC、CG、GT,三个,输出3。第二组数据A1A2A3,包含A1A2和A2A3两个“AA”,答案为2。
其实我并没有AC。我被卡常数TLE了。。。实在不想写这种没意义的东西了。
贴代码,待填坑。
#include
#include
#...
分类:
其他好文 时间:
2014-11-26 21:02:32
阅读次数:
211
KMP算法时间复杂度为O(m+n),直观地看,是因为在匹配过程中指针 i 没有回溯。KMP算法的核心思想是利用已经得到的部分匹配信息来进行后面的匹配过程。 KMP算法思路:从主串s的第pos个字符起和模式的第一个字符比较之,若相等,继续逐个比较后继字符。当一趟匹配过程中出现字符比较不等时,不回...
分类:
编程语言 时间:
2014-11-26 01:16:49
阅读次数:
250
串的模式匹配算法即确定主串中所含子串第一次出现的位置。BF算法是古典的,采用穷举的思想,而KMP算法是模式匹配算法的改进算法。 1.BF算法设计思想:将主串的第pos个字符和模式的第1个字符比较, 若相等,继续逐个比较后续字符; 若不等,从主串的下一字符(pos+1)起,重新与第一个 字符比较...
分类:
编程语言 时间:
2014-11-20 17:00:40
阅读次数:
383
8592 KMP算法
时间限制:1000MS 内存限制:1000K
题型: 编程题 语言: 无限制
描述
用KMP算法对主串和模式串进行模式匹配。本题目给出部分代码,请补全内容。
#include "stdio.h"
#include "stdlib.h"
#include "iostream.h"
#define TRUE...
分类:
编程语言 时间:
2014-11-19 22:19:25
阅读次数:
384
一定义:字符串:字符串是由零个或者多个字符组成的有限串行;子串:字符串中任意个连续的字符组成的子序列,并规定空串是任意串的子串,字符串本身也是子串之一;“abcdefg”,”abc“就是其子串,但是“ade”不属于子串范围。子序列:不要求字符连续,但是其顺序与其在主串中相一致;上例中,“abc”与“...
分类:
其他好文 时间:
2014-11-08 18:10:10
阅读次数:
249