题目链接:http://acm.fzu.edu.cn/problem.php?pid=1901给你一个字符串 s 求出所有满足s[i] == s[i+p] ( 0 #include#include#includeusing namespace std;const int N = 1e6+7;char...
分类:
编程语言 时间:
2015-09-29 18:24:57
阅读次数:
240
2.next数组的求解思路本部分内容转自:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html 通过上文完全可以对kmp算法的原理有个清晰的了解,那么下一步就是编程实现了,其....
分类:
编程语言 时间:
2015-09-28 17:32:51
阅读次数:
206
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3336题意就是求串s的前缀的个数和;例如:abab前缀 个数a 2ab 2aba 1abab1总数:6dp[i] 表示前面的字符以s[i-1]结尾的前缀个数;上列中dp[4]=2(以最后一个字符b结尾的前...
分类:
编程语言 时间:
2015-09-25 21:34:28
阅读次数:
245
hdu 3336(说实话理解得马马虎虎。。。)题目:给出一个字符串,问该字符串的每个前缀在字符串中出现的次数之和。思路:需要对next数组有足够的理解。设dp[i]表示以i结尾的字符串中出现的总次数(答案),那么首先在next[i]到i之间的前缀不会是对应的后缀,所以该长度的串数量恰好是dp[nex...
分类:
其他好文 时间:
2015-09-21 01:38:29
阅读次数:
170
题目链接:点击打开链接
题意描述:给定一个字符串,求使这个字符串是循环字符串至少需要添加多少个字符?要求循环至少两次
解题思路:kmp(next[]数组性质:点击打开链接)
根据next[]数组的性质我们可以得到一个字符串最小循环节为n-next[n],所以我们可以得出结论
if((n%(n-next[n])==0)&&(n/(n-next[n])>1))
printf("0...
分类:
其他好文 时间:
2015-08-31 13:42:42
阅读次数:
200
题意: 给你一个串T,找出串T的子串,该串既是T的前缀也是T的后缀。从小到大输出所有符合要求的串的长度。分析: 首先要知道KMP的next[i]数组求得的数值就是串T中的[1,i-1]的后缀与串T中的[0,i-2]前缀的最大匹配长度。 所以next[m](m为串长且串从0到m-1下标)的...
分类:
其他好文 时间:
2015-08-31 11:32:18
阅读次数:
155
KMP优化KMP算法是有优化版本的,之前写过文章简单的讨论了基本的KMP算法思想,但是对于一些含有连续重复字符的字符串,会出现多次冗余的比较。
例如:字符串S=“aaababa”和模式串P=“aaac”比较时,会出现多次的不必要的比较,这个我会在下面细说。Next数组重定义我们首先要解决的问题就是next数组的意义,之前的我写的KMP文章里面,next数组的意义是:字符串真子串中既是前缀串同时又是...
分类:
其他好文 时间:
2015-08-30 17:36:08
阅读次数:
255
构造next数组步骤1.计算最长公共前缀后缀数组 next[]; //即最长的,前缀与后缀相同的长度。2.将next中所有元素右移一位,第1个元素置为-1;3.将next中所有元素加1。算法运行:当第j个元素不匹配时,模式串右移j-next[j]个字符。 j从1开始例如模式串:xyxyyxxyx构造...
分类:
编程语言 时间:
2015-08-29 18:26:20
阅读次数:
144
我们在一个母字符串中查找一个子字符串有很多方法。KMP是一种最常见的改进算法,它可以在匹配过程中失配的情况下,有效地多往后面跳几个字符,加快匹配速度。
当然我们可以看到这个算法针对的是子串有对称属性,如果有对称属性,那么就需要向前查找是否有可以再次匹配的内容。
在KMP算法中有个数组,叫做前缀数组,也有的叫next数组,每一个子串有一个固定的next数组,它记录着字符串匹配过程中失配情况...
分类:
编程语言 时间:
2015-08-29 00:56:27
阅读次数:
184
题意:给一个字符串,求它的最小子串,使得原串是通过它重复得到的字符串的一个子串。思路:先求最小长度,最小循环长度可以利用kmp的next数组快速得到,求出长度后然后利用字符串最小表示法求循环节的最小表示即可。#pragma comment(linker, "/STACK:10240000")#inc...
分类:
其他好文 时间:
2015-08-27 02:11:21
阅读次数:
173