第一道题:求有删除情况的最长回文子串 题目: 解题思路: 这个题严格意义上来说,删除了字符就谈不上回文串了,既然有删除,那估计考察的不是回文串,而是其他的,但是这个东西又有回文串的特点,细想一下——那就是不连续的回文串,想到不连续,就容易使人想到最长公共子序列,把源字符串逆序之后对比两个字符串发现: ...
分类:
编程语言 时间:
2016-04-06 13:24:41
阅读次数:
182
这是一个腾讯笔试的编程题:
我们常常会用到一个LCS的问题,本题的唯一的一个巧妙之处在于,最后求解的字符串变为的是原来的字符串与其reverse之后的字符串的最大LCS,这样本题就得到了解决。
最长公共子序列求解:递归与动态规划方法
在做OJ题目的时候,经常会用到字符串的处理。例如,比较二个字符串相似度。这篇文章介绍一下求两个字符串的最长公共子序列。
一个字符串...
分类:
其他好文 时间:
2016-04-05 17:58:44
阅读次数:
236
题目:回文字符串 思路:找准状态以及决策,就可以了; 形如:E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最长公共子序列) 变形即可; dp[i][j]是第i位置开始长度为j的最小添加的字符串的数量; ...
分类:
其他好文 时间:
2016-04-04 22:38:50
阅读次数:
308
1006 最长公共子序列Lcs 基准时间限制:1 秒 空间限制:131072 KB 给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。 比如两个串为: abcicba abdkscab ab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。 I ...
分类:
其他好文 时间:
2016-04-03 01:37:50
阅读次数:
207
题目:http://acm.nyist.net/JudgeOnline/problem.php?pid=36 介绍一下定义先~ 子序列:一个序列的子序列,就是该序列删掉若干个(0~len-1)元素后的序列 公共子序列:一个序列c如果既是序列a删去若干元素后的结果,又是序列b删去若干元素后的结果,则: ...
分类:
其他好文 时间:
2016-03-31 14:16:45
阅读次数:
136
[TOC] ### 最长递归子序列 #### 题目 给定数组arr,返回arr中的最长递增子序列,如`arr=[2,1,5,3,6,4,8,9,7]`,返回的最长递增子序列为`[1,3,4,8,9]` #### 题解思路 先用DP来求解子序列递增的最大长度,如arr的长度序列为`dp=[1,1,2,... ...
分类:
其他好文 时间:
2016-03-29 12:32:03
阅读次数:
552
LCS是求两个字符串,最长的公共部分,中间可以间隔其他的元素。例如,字符串s1=''mzjawxu'',s2=''xmjyauz'',仔细分析下,大体可以看出最长公共子序列是''mjau'',我们需要一套科学严格的方法来求解。这个问题是DP问题(动态规划问题)。动态规划问题:就是当前问题的求解依赖于
分类:
其他好文 时间:
2016-03-23 13:15:55
阅读次数:
219
POJ 1159 题目大意:给定一个长度为n的字符串,求至少添加多少个字符能使得它变成回文串 解题思路:求原串的逆串(abcdd的逆串为ddcba),然后求原串与逆串的最长公共子序列,即为c,则n-c即为最少添加的字符(不懂如何证明,只能大脑大概过明白) 求两个字符串a,b的最长公共子序列: 定义状
分类:
其他好文 时间:
2016-03-22 06:10:50
阅读次数:
128
题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19051 首先,这题一看就知道是——最长公共子序列(LCS) 但是,会发现这道题的字符串长度可能达到62500,我们现在会的LCS的解法时间复杂度为O(n^2),所以是会超
分类:
其他好文 时间:
2016-03-19 19:39:06
阅读次数:
170