给定字符串S, 找到其子串中最长的回文字符串.反转法: 反转S为S', 找到其中的最长公共子串s, 并确认子串s在S中的下标iS与在S'中的下标iS'是否满足式: length(S) =iS +iS' + length(s). 如果满足则s为搜索结果, 如果不满足我们就继续搜索.DP解法:定义 P[...
分类:
其他好文 时间:
2014-10-24 00:13:43
阅读次数:
231
题目链接:http://poj.org/problem?id=2217题目大意: 求两个串的最长公共子串,注意子串是连续的,而子序列可以不连续。解题思路:有个炒鸡快的O(n)的Manacher算法。不过只能求裸的最长公共和回文子串。后缀数组解法是这类问题的模板解法。对于n个串的最长公共子串,这要把这...
分类:
编程语言 时间:
2014-10-23 12:09:09
阅读次数:
252
【题目】
将一个很长的字符串,分割成一段一段的子字符串,子字符串都是回文字符串。有回文字符串就输出最长的,没有回文就输出一个一个的字符。
例如:habbafgh
输出h,abba,f,g,h。
【思路一】
基于“最长回文子串算法”求出当前字符串的最长回文子串,就可以分成3部分
a、最长回文子串left部分
b、最长回文子串
c、最长回文子串right部分
然后分别...
分类:
其他好文 时间:
2014-10-22 15:55:45
阅读次数:
231
输出最大长度的回文子串。 1 string longestPalindrome(string s) 2 { 3 4 5 int id, mx, i, j, len, maxlen; 6 vector cvec; 7 vector ivec; 8 string st...
分类:
其他好文 时间:
2014-10-21 12:00:15
阅读次数:
136
1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 #define N 10001000 9 int n;10 int p[N];11 char s[N], str[N];12 ...
分类:
编程语言 时间:
2014-10-19 14:16:27
阅读次数:
251
题目:统计一个串的回文子串的个数。
分析:dp,暴力。由于数据较小,直接暴力求解即可。
说明:(UVa终于进入前800了)。
#include
#include
#include
#include
using namespace std;
char str[82];
char ans[3200][82];
int main()
{
while (~scanf("%s",str...
分类:
其他好文 时间:
2014-10-17 01:52:53
阅读次数:
226
总结了几天的后缀数组,终于完成了。不可重叠重复串;可重叠k次重复串; 不相同子串个数最长回文子串 连续重复子串重复次数最多的连续重复子串最长公共子串长度不小于k 的公共子串的个数不小于k 个字符串中的最长子串出现或反转后出现在每个字符串中的最长子串3个字符串,问其中公共子串分别为1,2,3...l的...
分类:
编程语言 时间:
2014-10-16 02:57:51
阅读次数:
309
给出一行字符串,每次可以删去一个回文子串,子串可以是不连续的,因此用状压比较好模拟,求删掉整个字符串需要的最少步数。
字符串的最大长度为16,因此不能逐行枚举状态,首先预处理出来所有的的回文子串,然后从第一步开始,依次状压第i步能到达的状态,如果能达到母串,跳出。
还有初始化不要用图省事用memset。。不优越的姿势+函数导致T了数发。
#include
#include
#includ...
分类:
其他好文 时间:
2014-10-16 00:09:27
阅读次数:
231
题目:统计一个串中的回文子串的个数(注意是子串,要连续)。
分析:dp,暴力。直接用dp,二维数组内存不够用,而且dp木有暴力快( ⊙ o ⊙ )啊!
说明:(2011-09-24 03:22)。
#include
#include
#include
using namespace std;
char data[ 5005 ];
bool F[ 5005 ][ 5005 ];
...
分类:
其他好文 时间:
2014-10-02 00:27:01
阅读次数:
172
给定一个字符串,返回该字符串的最长回文子串,回文yejius...
分类:
其他好文 时间:
2014-10-01 21:30:53
阅读次数:
131