
字符串处理
文章平均质量分 66
Algobird
这个作者很懒,什么都没留下…
展开
-
HDU 3746 Cyclic Nacklace(KMP最小循环子串)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3746题目大意:给定一个字符串s,求在左边或右边至少添加几个字符,可以形成一个循环。解:首先明确在左边和右边添加是一样的,反过来就可以了。其次考虑几种情况:假定字符串长度都为n,1、s1…s2,对于任意相同长度的s1和s2两个子串,s1均不等于s2。即Next[len] = 0,需要原创 2015-08-19 15:59:15 · 368 阅读 · 0 评论 -
HDU 2594 Simpsons’ Hidden Talents(KMP求前缀后缀子串匹配)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2594题目大意:给定s1,s2,问s1的前缀子串和s2后缀子串的最大匹配时多少。先拼在一起,然后求next,但是next求得的值的最大匹配串可能超过s1或者s2,所以要不断嵌套next数组来达到最大的但是又不超过s1和s2的子串。#include#include#include#inc原创 2015-08-19 21:03:35 · 557 阅读 · 0 评论 -
HDU 1358 Period(KMP求前缀子串的循环次数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1358题目大意:给定一个字符串s,然后对于所有的前缀子串,如果是一个周期循环的子串,那么就输出他的长度和循环了几次。解:如果长度为k的串是以t为周期循环的,那么之后存在一个i满足next[i] * 2 > l,即超过一半的长度且next[i] = k。那么可以知道i串的循环周期是和n长度为k的原创 2015-08-19 20:43:00 · 418 阅读 · 0 评论 -
HDU 2087 剪花布条(KMP匹配裸题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2087这题。。。。不多说了。#include#include#include#include#includeusing namespace std;char a[1005], b[1005], Next[1005];void getNext(int len){ int i原创 2015-08-19 20:48:44 · 358 阅读 · 0 评论 -
HDU 3336 Count the string(KMP+Next数组递推)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3336题目大意:给定一个字符串,求所有前缀串在母串中匹配的数量,包含前缀串本身。注意一个坑点,虽然没有没坑。比如aaaaaa,前缀串aa的匹配数目为4个。包括aaaaaa, aaaaaa, aaaaaa, aaaaaa必须保证与前缀串匹配的串与之不交叉。先求KMP的next数组,原创 2015-08-19 20:15:32 · 358 阅读 · 0 评论