动态规划是一种高效算法,常用来求解最优化问题。本例中以寻找最长回文子序列为例来设计动态规划算法最长回文子序列:回文是指正序与逆序相同的飞空字符串。比如civic,racecar自身都是自己的最长回文子序列。比如character的最长回文子序列为carac。动态规划一般分为四个步骤:1,刻画一个最优...
分类:
编程语言 时间:
2015-05-26 17:58:58
阅读次数:
141
题目链接:
hihocoder 1032
代码:
#include
#include
#include
using namespace std;
char str[1000105];
int fast()
{
int start,endd,len,ans=0;
for(int i=1;str[i];i++)
{
st...
分类:
其他好文 时间:
2015-05-25 18:48:18
阅读次数:
226
算法的第一步就是在每个字符的左右都加上一个#,这样有什么效果呢。
比如aba初始化之后为#a#b#a#,字符串长度为7是奇数。
比如1221初始化之后为#1#2#2#1#,字符串长度为9是奇数。
为什么我们要将其转换成奇数呢,因为算法求取回文串长度的时候,需要有一个中心节点,之后分别向左右搜索,所以需要将回文串豆转换为奇数长度。
之后我们需要将str[0]赋值为一个字符,可以赋值为$,...
分类:
编程语言 时间:
2015-05-25 14:41:02
阅读次数:
146
题目要求: 给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串。例如,给出字符串 "abcdzdcab",它的最长回文子串为 "cdzdc"。 解答: 这个题目的一个简单的解法就是对字符串中的每一个字符,同时向其两边延展,以找到最长回...
分类:
其他好文 时间:
2015-05-23 15:33:14
阅读次数:
160
// A O(n^2) time and O(1) space program to find the longest palindromic substring#include // A utility function to print a substring str[low..high]voi...
分类:
其他好文 时间:
2015-05-22 00:28:09
阅读次数:
110
原题链接:http://ac.jobdu.com/problem.php?pid=1528小白书上的做法,不过这个还要简单些。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using std::max; 7 const int...
分类:
其他好文 时间:
2015-05-18 18:25:37
阅读次数:
154
题意:
给你一个字符串,求该字符串的最长回文子序列长度。
解法:
以前做过连续最长回文子串的长度就是通过构造奇数偶数长度的来做,而本题是不连续。
注意到回文字符串的特点是从左边向右边看和从右边向左边看是一样的效果,那么就可以把目标字符串s导致后产生一个t,子串中如果t和s相同那么这个子串就是回文子串,那么就转化为这两个子串求LCS(longest common subsequent)的问题了。
我的...
分类:
其他好文 时间:
2015-05-17 13:46:04
阅读次数:
123
分析:两个不同方向开始跳跃,跳过数字相同,就相当于求回文子序列了。用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
区别于最长公共字串,下面是最长公共字串的算法,利用DP(动态规划):void LCS_dp(char * X, int xlen, char * Y, int ylen){ maxlen = maxindex = 0; for(int i = 0; i maxlen) ...
分类:
其他好文 时间:
2015-05-12 22:34:26
阅读次数:
140