package com.hzins.suanfa; /** * 最长公共子序列问题 * @author Administrator * */ public class Demo5 { /** * 额外空间复杂度O(n^2) * @param str1 * @param str2 * @return ... ...
分类:
其他好文 时间:
2017-05-05 14:10:37
阅读次数:
165
题意: 求两个字符串的公共子序列,如“abcd” 与 “becd”的公共子序列是 “bcd” 分析: 设两个字符串为 串s 和串tdp[i][j]:= s1..si和t1...tj对应的LCS长度 那么 dp[i][j] = { 0 , i =0 or j = 0; dp[i-1][j-1] + 1 ...
分类:
其他好文 时间:
2017-05-04 23:12:20
阅读次数:
208
?? /*Common Subsequence A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = < x1 ...
分类:
其他好文 时间:
2017-05-02 09:51:48
阅读次数:
191
原题地址 题目分析 这道题基本上是在普通LCS问题上的一点小小的变形,由求LCS的长度,改为求LCS的权值。架构还是不变的。可作为LCS问题的模板题。时间复杂度O(N^2)。 注意 题目中的字母都是小写字母,也就是仅仅有26种字符。不须要开太大的数组。所以hash就是非常好的一种保存权值的方法。另外 ...
分类:
其他好文 时间:
2017-04-28 22:06:43
阅读次数:
147
一、最长公共子串和最长公共子序列的区别 最长公共子串:要求子串在原字符串中是连续出现的。 ADE 和ABCDE的最长公共子串是DE 最长公共子序列:不要求子序列在原字符串中是连续的。ADE 和ABCDE的最长公共子序列是ADE 二、最长公共子串 字符串1:caba 字符串2:bab 思路: 1.用一 ...
分类:
其他好文 时间:
2017-04-22 17:44:35
阅读次数:
173
一般对于两个字符串,长度分别为n和m,其时间复杂度为O(nm)。 但是针对小字符集的情况,可以把复杂度降低到O(n^2),其中n为两个字符串较短的长度。这种方法对于两个字符串长度相差很大的情况比O(nm)要优化很多。 就假设所有的字符都是小写字母,这样就符合小字符集的前提了。设较短的字符串为S1,较 ...
分类:
编程语言 时间:
2017-04-17 23:39:27
阅读次数:
221
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1159 题目概述: 给出两个字符串,求最长公共子序列长度。 大致思路: 很经典的问题,就不多说了。 附一个我觉得写的很不错的博主的讲解:http://www.cnblogs.com/en-heng/p/ ...
分类:
其他好文 时间:
2017-04-16 20:02:56
阅读次数:
146
给出一个长为n的数列的k个排列(1?≤?n?≤?1000; 2?≤?k?≤?5)。求这个k个数列的最长公共子序列的长度 dp[i]=max{dp[j]+1,where j<i 且j,i相应的字符在k个排列中都保持同样的相对位置} #include <iostream> #include <vecto ...
分类:
其他好文 时间:
2017-04-13 21:03:45
阅读次数:
165
最长上升子序列,问题定义:http://blog.csdn.net/chenwenshi/article/details/6027086 代码: 最大和子序列(最大和连续子序列)。MaxSum[i] 表示以i结尾的有最大和的连续子序列之和。MaxSum[i] = Max{ MaxSum[i-1] + ...
分类:
其他好文 时间:
2017-04-10 21:42:31
阅读次数:
254
1 //最长公共子序列 2 #include<iostream> 3 #include<cstdio> 4 #include<cstdlib> 5 using namespace std; 6 string s1,s2; 7 int f[100][100]; 8 int main() 9 { 10 ...
分类:
其他好文 时间:
2017-04-07 22:04:45
阅读次数:
145