题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2087
剪花布条
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8742 Accepted Submission(s): 5...
分类:
其他好文 时间:
2014-09-10 19:35:43
阅读次数:
181
题意:给你一串环形珠子,每串珠子有一种颜色,只能在队首或队末增加点,问你最少需要多少个株洲使得这串珠子颜色循环解题思路:其实从前面插入和从后面插入是一样的,所以我们只需要知道到了 len next指针的值就行解题代码: 1 // File Name: getnext.cpp 2 // Author:...
分类:
其他好文 时间:
2014-09-10 17:38:50
阅读次数:
114
最近在学习数据结构,将KMP算法用C#简单实现了下。...
分类:
其他好文 时间:
2014-09-10 14:15:50
阅读次数:
148
题意:找所有字符串中的最长公共字串解题思路:KMP+剪枝,因为如果我们知道前缀如果不满足条件,所有以这个开头的都不行。解题代码: 1 // File Name: getnext.cpp 2 // Author: darkdream 3 // Created Time: 2014年09月09日 ...
分类:
其他好文 时间:
2014-09-10 13:58:10
阅读次数:
274
题意:找所有字符串中的最长公共字串解题思路:KMP+剪枝,因为如果我们知道前缀如果不满足条件,所有以这个开头的都不行。解题代码: 1 // File Name: getnext.cpp 2 // Author: darkdream 3 // Created Time: 2014年09月09日 ...
分类:
其他好文 时间:
2014-09-10 13:53:10
阅读次数:
320
题意:找出所有字符串中最长相同字串解题思路:枚举KMP解题代码: 1 // File Name: getnext.cpp 2 // Author: darkdream 3 // Created Time: 2014年09月09日 星期二 22时35分02秒 4 5 #include 6...
分类:
其他好文 时间:
2014-09-10 12:18:00
阅读次数:
149
题意:给你一个字符串,问你最多是由多少段相同的字串构成的解题思路:求next指针的思路,我们匹配到 str[len],可以知道,len - str[len] 是他的循环节,再判断能不能整除就行了。解题代码: 1 // File Name: 2406.cpp 2 // Author: darkdrea...
分类:
其他好文 时间:
2014-09-09 22:48:49
阅读次数:
282
题意:给定两个串,求出两个串的最长公共子序列,要求该公共子序列不包含virus串。用dp+kmp实现dp[i][j][k]表示以i结尾的字符串和以j结尾的字符串的公共子序列的长度(其中k表示该公共子序列的与virus的匹配程度)很显然,当k==strlen(virus)时,该公共子序列不是我们所求得...
分类:
其他好文 时间:
2014-09-09 20:03:59
阅读次数:
207
思路: 逐步查找。当出现不同时,如何回溯是关键。
Solution B 与经典 KMP 算法:
next[0] = 0; (0 位置不能匹配,下次还从此位置开始匹配)
next[pos] = (P[next[pos-1]] == P[pos] ? next[pos-1]+1 : 0);
分类:
其他好文 时间:
2014-09-09 15:04:38
阅读次数:
160
分析:这道题主要是考我们关于KMP算法的应用的!题目要求求出两个字符串中最长的连续字符的个数!由于题目的上限很大,所以暴力搜索的话肯定是会超时的!
题解:这个,选第一个字符串为目标,使用两个for循环来依次枚举所选的这个字符串的子字符串,然后求出该字符串的next[]数组,然后使用kmp算法,和第二个字符串对比匹配,由于题目要求的是连续的最长的子字符串,所以在枚举时一旦发现不能匹配上,就直接跳出内循环,然后再从外循环重新开始枚举并搜索!...
分类:
其他好文 时间:
2014-09-09 13:27:08
阅读次数:
177