学习kmp算法我最后是看的数据结构书上的一本教材学会的。。我觉得kmp相对于普通的BF算法就是避免了很多不必要的匹配,而kmp算法的精髓自然就在于next数组的运用。。。而next数组简而言之就是存储的就是模式串中第j个字符与主串中相应字符“失配”时,在模式串中需要重新和主串中失配的字符相比较的位置。。。我觉得这句概括挺好的。。。
题1:
hdu 1711 number sequen...
分类:
其他好文 时间:
2014-08-04 14:34:27
阅读次数:
277
kmp算法--求字符串子串--《数据结构》严蔚敏...
分类:
其他好文 时间:
2014-08-03 12:46:55
阅读次数:
204
题目是牛仔裤的意思,不过看不出题意和Blue Jeans有什么关系。
本题的数据是很水的,数据量小,故此可以使用非常暴力的方法过,也可以使用不那么暴力的KMP过。
这里使用更加不暴力的Trie后缀树过,这种解法就一点都不水了,呵呵。
思路:
1 建立所有字符串的后缀Trie树
2 增加额外信息,看每过路径是否是所有的字符串都经过了,如果是,那么就是合法的字符串了,查找最长的这样的字符串...
分类:
其他好文 时间:
2014-08-03 10:21:21
阅读次数:
239
首先声明一下,这里的规律指的是循环,即找到最小循环周期。这么一说大家心里肯定有数了吧,“不就是next数组性质的应用嘛”。先来看一道题ZOJ 3785What day is that day?Time Limit:2 Seconds Memory Limit:65536 KBIt's Saturda...
分类:
其他好文 时间:
2014-08-03 01:44:54
阅读次数:
403
UVA 11475 - Extend to Palindrome
题目链接
题意:给定一个字符串,问需要补上最少的字符使他变成回文串
思路:KMP,把字符串逆序和原串做匹配,匹配到最后一个字符看匹配了多少个,就是最大重合部分,然后相应输出即可
代码:
#include
#include
#include
using namespace std;
const i...
分类:
其他好文 时间:
2014-08-02 21:00:44
阅读次数:
212
UVA 10298 - Power Strings
题目链接
题意:本意其实就是,给定一个字符串,求出最小循环节需要几次循环出原字符串
思路:利用KMP中next数组的性质,n - next[n]就是最小循环节,然后n / 循环节就是答案
代码:
#include
#include
const int N = 1000005;
char str[N];
int ...
分类:
其他好文 时间:
2014-08-02 18:21:43
阅读次数:
282
A -KMP模式匹配 一(串)Crawling in process...Crawling failedTime Limit:1000MSMemory Limit:131072KB 64bit IO Format:%lld & %lluDescription求子串的next值,用next数组存放,所...
分类:
其他好文 时间:
2014-08-01 22:34:22
阅读次数:
170
#include
#include
#include
typedef struct
{ char *ch;
int length;
}HString;
void StrAssign(HString &T,char chars[]);
int get_next(HString T,int next[]);
void main()
{ HString T;
char chars[80];
in...
分类:
其他好文 时间:
2014-08-01 13:51:23
阅读次数:
229
UVA 1328 - Period
题目链接
题意:给定一个字符串,求出有几个位置的前缀串是由个数大于1的串循环得到的,求出位置和循环次数
思路:利用kmp的next数组的性质,i - next[i]就是循环长度,然后判断一下是不是正好是倍数即可
代码:
#include
#include
const int N = 1000005;
int n, next[...
分类:
其他好文 时间:
2014-08-01 13:49:11
阅读次数:
171
1、KMP是一种用来进行字符串匹配的算法,首先我们来看一下普通的匹配算法:现在我们要在字符串ababcabcacbab中找abcac是不是存在,那么传统的查找方法就是一个个的匹配了,如图:经过六趟匹配之后,终于匹配上了。现在是数据比较小的时候,大家可能没有什么感觉,如果我们的数据是百万级别的,那用这...
分类:
其他好文 时间:
2014-07-31 16:54:06
阅读次数:
258