举例说明:S: ababcababaP:ababaKMP算法之所以叫做KMP算法是因为这个算法是由三个人共同提出来的,就取三个人名字的首字母作为该算法的名字。其实KMP算法与BF算法的区别就在于KMP算法巧妙的消除了指针i的回溯问题,只需确定下次匹配j的位置即可,使得问题的复杂度由O(mn)下降到O...
分类:
其他好文 时间:
2014-08-20 12:26:52
阅读次数:
208
确定有限自动机定义:http://en.wikipedia.org/wiki/Deterministic_finite_automaton自动机在字符串匹配中的应用 1 #include 2 #include 3 #include 4 #define ALPHABETLENGTH 53 5...
分类:
其他好文 时间:
2014-08-19 18:37:05
阅读次数:
283
思路:刚开始还在想怎么做,虽然以前是理解了失配指针的用处,但是确实不知道失配指针还有如此用处,其实还有很多用处,我用得少了不懂而已。
比如:
i 0 1 2 3 4 5 6 7 8 9 10 11
p[i] A B R A C A D A B R A 无
next[i] 0 0 0 0 1 0 1 0...
分类:
其他好文 时间:
2014-08-19 12:58:05
阅读次数:
181
OulipoTime Limit:1000MSMemory Limit:65536KTotal Submissions:23667Accepted:9492DescriptionThe French author Georges Perec (1936–1982) once wrote a book...
分类:
其他好文 时间:
2014-08-19 10:53:34
阅读次数:
230
再次回来总结KMP,发现有点力不从心,学久了,越觉得越来越不理解了。估计是写KMP已经不下50遍了吧。每次用都是直接默写。。KMP算法,串模式匹配算法,通过预处理得到next数组,再进行匹配。几个要重点记忆的地方:1. next数组的含义 next[i] = t 表示以i位置结尾的前缀串(相对于原串...
分类:
其他好文 时间:
2014-08-19 00:56:23
阅读次数:
213
从头到尾彻底理解KMP 作者:July 时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进。 1. 引言 ? ? 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,...
分类:
其他好文 时间:
2014-08-17 18:41:53
阅读次数:
428
KMP KMP算法主要用于字符串匹配中的单串匹配 next函数:表示当前字符失配时,应从模式串的第几位开始匹配(越大越好)。即模式串的前缀与以t[i]为结尾的后缀的最长相同部分的长度。 代码如下(pascal) var s,t:string; next,ans:array[0..100] of lo...
分类:
其他好文 时间:
2014-08-17 12:55:12
阅读次数:
234
Problem Description
The French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter 'e'. He was a member of the Oulipo group. A quote from the book:
Tout avait...
分类:
其他好文 时间:
2014-08-16 19:50:11
阅读次数:
239
当天下午3点拿到jcvb现场发来的数据,本地自测100+100+30=230。BUAA成绩60+60+30=150。sad story~动物园 zoo既是它的后缀同时又是它的前缀,并且该后缀与该前缀不重叠,将这种字符串的数量记作num[i]。偌大的提示:kmp! 思路很简单,求出next数组,你会发...
分类:
其他好文 时间:
2014-08-16 18:30:20
阅读次数:
469