随笔分类 -  数据结构—KMP

摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4300 题意:给出两个字符串,第一个字符串是加密表,是用来将明文转化成密文的。 第二个字符串是密文+明文,而且密文是完整的,但是明文不一定完整,现在要根据密文和加密表把所有明文表示出来,要求整个字符串长度最小。 思 阅读全文
posted @ 2017-11-17 21:12 Kayden_Cheung 阅读(177) 评论(0) 推荐(0) 编辑
摘要:http://codeforces.com/problemset/problem/182/D 题意:如果把字符串a重复m次可以得到字符串b,那么我们称字符串a为字符串b的一个因子,现在给定两个字符串S1和S2,求它们的公共因子个数。 思路: 先求最小循环节,如果最小循环节不同,那么肯定是没有公共因子 阅读全文
posted @ 2017-11-17 09:30 Kayden_Cheung 阅读(203) 评论(0) 推荐(0) 编辑
摘要:http://acm.split.hdu.edu.cn/showproblem.php?pid=2594 题意:给出两个字符串,求最长的子串使得该子串同时是第一个字符串的前缀和第二个字符串的后缀。 思路:这道题本来就是KMP算法的一个应用吧。 在用kmp进行匹配时,文本串的最后一串字符肯定和匹配串起 阅读全文
posted @ 2017-10-13 19:38 Kayden_Cheung 阅读(154) 评论(0) 推荐(0) 编辑
摘要:http://acm.split.hdu.edu.cn/showproblem.php?pid=5782 题意:给出两个长度相等的字符串,输出两个字符的每个前缀是否循环相同。 思路: 如果连个串循环相同的话,那一定可以找到一个位置,使得第一个串的前缀等于另一个串的后缀。这样的话其实就是扩展kmp的思 阅读全文
posted @ 2017-10-13 19:13 Kayden_Cheung 阅读(178) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5763 题意: 给出一个字符串和一个模式串,模式串有两种意思,问这句话有几种意思。 思路:因为肯定要去字符串去找模式串,所以首先用KMP计算next数组,然后用动态规划,d[i]表示分析到第i个字符时有多少种意思。 阅读全文
posted @ 2017-04-27 14:34 Kayden_Cheung 阅读(162) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2185 题意: 给出一个r行c列的字符矩阵,求最小的覆盖矩阵可以将原矩阵覆盖,覆盖矩阵不必全用完。 思路: 我对于字符串的最小循环节是这么理解的: 如果next[12]=5,那么前5个前缀字符和后5个后缀字符是一样,但是此时还需要加上中间的2个, 阅读全文
posted @ 2017-04-23 17:18 Kayden_Cheung 阅读(183) 评论(1) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1358 题意:题目研究了半天。就是说从字符串的第二个字符开始,看前面的字符串部分是否是循环的,如果是,则输出当前位置和循环的周期,循环的周期必须大于1。 首先,需要好好理解next[]数组的含义,next数组的含义 阅读全文
posted @ 2017-01-30 14:42 Kayden_Cheung 阅读(249) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2087 题意:给定一个文本串和给定一个模式串,求文本串中有几个模式串。匹配成功的串不可以再使用。 思路:题目不难,还是可以直接套用KMP模板。需要注意的就是如果在主串中如果成功匹配了一次,那么模式串应该回到开头,而 阅读全文
posted @ 2017-01-30 12:56 Kayden_Cheung 阅读(149) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1686 题意:给定一个文本串和给定一个模式串,求文本串中有几个模式串。 思路:直接套用KMP模板。 阅读全文
posted @ 2017-01-30 11:59 Kayden_Cheung 阅读(209) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3336 题意:给出一个字符串,计算所有前缀在字符串中出现的次数。 思路:考虑KMP的next[]来解题。next[i]=j表示最大的j使得0~j==i-j~i。 对于样例的next[]分析如下: 0 1 2 3 a 阅读全文
posted @ 2017-01-30 10:47 Kayden_Cheung 阅读(223) 评论(0) 推荐(0) 编辑

//目录
点击右上角即可分享
微信分享提示