因为它要求的是最长的回文串,我们一方面从前往后走,一方面从后往前走,当某次得到一个相同的部分就看成一个整体,这样就可以得到最长的一个回文串.然后的问题就是如果判断我们枚举的前后两个部分的字符串是否是一样的,我们当然可以暴力判定,但是这样肯定回超时,所以我们采用字符串hash的方法进行判断.代码如下:#include
#include
#include<cstdi...
分类:
其他好文 时间:
2015-05-21 22:39:23
阅读次数:
187
题目传送门 1 /* 2 水题:vector容器实现插入操作,暴力进行判断是否为回文串 3 */ 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 using namespace std;11 ...
分类:
其他好文 时间:
2015-05-18 18:38:01
阅读次数:
164
题目:http://blog.csdn.net/winddreams/article/details/44218961求出每一个点为中心的最长字符串,推断该串是不是从开头的回文串。#include #include #include using namespace std ;int p[120000...
分类:
其他好文 时间:
2015-05-15 21:10:51
阅读次数:
109
题目大意:给定一个字符串SS,要求分成A+prefix+B+middle+C+suffixA+prefix+B+middle+C+suffix6段,满足:
|A|=|C||A|=|C|
|B||B|为奇数
A+B+CA+B+C为回文串
除BB外所有段长度都可以为00
要求最大化|A|+|B|+|C||A|+|B|+|C|,输出一组方案(|A|=|C|=0|A|=|C|=0时只输出BB)首先...
分类:
其他好文 时间:
2015-05-13 22:04:47
阅读次数:
259
分析:两个不同方向开始跳跃,跳过数字相同,就相当于求回文子序列了。用dp求出从一个位置到另一个位置的最长回文子序列,相当于把[1-n]分成区间[1-x]和[x+1,n],结果就是两区间最长回文串子序列之和。枚举中间点i,求出max(dp[1,i]+dp[i+1,n])即得最终结果,回文非连续序列,从前往后,从后往前序列相同,求出区间内最长回文序列,由于是环,分成两部分,1~i,i+1~n,A可从i...
分类:
其他好文 时间:
2015-05-13 22:02:01
阅读次数:
152
题目大意: 给出一个只由小写英文字符a,b,c…y,z组成的字符串S,求S中最长回文串的长度.
解题思路:Manacher算法#include
#include
#include
using namespace std;char S[110005], str[220010];
int len, p[220010];void init...
分类:
其他好文 时间:
2015-05-13 13:02:34
阅读次数:
91
对于给定字符串,求最少需要几次划分,能够将字符串划分为若干子串,每个子串都是一个回文串。如abaab,需要至少1次划分,将字符串划分为:a|baab,每个部分均为回文串。...
分类:
编程语言 时间:
2015-05-13 10:29:34
阅读次数:
406
Longest Palindromic SubstringGiven a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substrin...
分类:
其他好文 时间:
2015-05-12 23:09:34
阅读次数:
163
题目传送门 1 /* 2 题意:给出一个长为n的仅由小写英文字母组成的字符串,求它的回文串划分的元素的最小个数,并按顺序输出此划分方案 3 回文串+回溯:dp[i] 表示前i+1个字符(从0开始)最少需要划分的数量,最大值是i+1,即单个回文串; 4 之前设置ok[j...
分类:
其他好文 时间:
2015-05-10 18:53:07
阅读次数:
108