LCS(Longest Common Sequence)最长公共子序列算法
来源:互联网 发布:学生空间七天网络答案 编辑:程序博客网 时间:2024/06/10 22:49
LCS(Longest Common Sequence)最长公共子序列算法
最长公共子序列就是在两个字符串中找出相同且最长的子序列,其中该子序列并不要求是连续的。假设我们拥有两个序列
- 当
S1[m−1]==S2[n−1] 时,S1 和S2 的最长公共子序列便为子字符串S1.substr(m−1) 和S2.substr(n−1) 的最长公共子序列加1; - 当
S1[m−1]≠S2[n−1] 时,其最长的公共子序列取的是子字符串S1.substr(m−1) 和S2 的最长公共子序列 与 子字符串S2.substr(n−1) 和S1 的最长公共子序列中最大的那个
通过上面的分析我们可以看出来这是一个明显的动态回归问题,为了避免重复计算,我们只需要利用一个二维数组a[m+1][n+1]来把各个子字符串的最长公共子序列的长度记录下来即可,这里我们令a[i][j]表示长度为i的字符串与长度为j的字符串的最长公共子序列的长度,那么有
因此
public int LCS(ArrayList<String> path1, ArrayList<String> path2){ int len1 = path1.size(); int len2 = path2.size(); int a[][] = new int[len1 + 1][len2 + 1]; for(int i = 0; i <= len1; ++i){ for(int j = 0; j <= len2; ++j){ if(i == 0 || j == 0) a[i][j] = 0; else if(path1.get(i - 1).compareTo(path2.get(j - 1)) == 0) a[i][j] = a[i - 1][j - 1] + 1; else a[i][j] = a[i - 1][j] > a[i][j - 1] ? a[i - 1][j] : a[i][j - 1]; } } return a[len1][len2]); }
0 0
- LCS(Longest Common Sequence)最长公共子序列算法
- longest common sequence(最长公共子序列)
- 最长公共子序列(Longest Common Subsequence LCS)
- uva 10405 Longest Common Subsequence 最长公共子序列 LCS
- 最长公共子序列(LCS, Longest Common Subsequence), POJ 1458
- 求最长公共子序列Longest Common Subsequence LCS
- 最长公共子序列(Longest-Common-Subsequence,LCS)
- 最长公共子序列问题LCS Longest Common Subsequence
- uva10405 - Longest Common Subsequence(LCS,最长公共子序列)
- 最长公共子序列(Longest Common Subsequence, LCS)
- 最长公共子序列(Longest Common Subsequence,LCS)
- 最长公共子序列,Longest-Common-Subsequence(LCS)
- 最长公共子序列LCS(The longest common subsequence)
- 最长公共子序列问题(LCS) Longest common subsequence
- 最长公共子序列问题(Longest common subsequence,LCS)
- LCS(Longest Common Subsequence 最长公共子序列)
- 最长公共子序列问题(LCS, Longest Common Subsequence)
- [动态规划] [LCS算法] 最长公共子序列 longest common subsequence
- Android 存储数据的五种方法总结。。。。。。。
- 制作自己的IOC框架
- zabbix系列(七)zabbix3.0添加对tcp连接数及状态的监控
- AVL树(平衡二叉树)及其实现
- springmvc+mybatis+ehcache配置详解
- LCS(Longest Common Sequence)最长公共子序列算法
- C++开发预定义宏——以VS2010为例
- 浙大PAT甲级 1040
- 占位
- leetcode-java-279. Perfect Squares
- Spring 与 Struts2的区别
- listview+checkbox实现单选
- vijos1144&&bzoj1596(树形dp,树上最小控制集
- LEI (Lotus Enterprise Integrator for Domino) 7.0.4 升级到 8.5.3 问题记录