最长公共子序列
来源:互联网 发布:linux python27 pyqt5 编辑:程序博客网 时间:2024/05/20 07:16
最长公共子序列
动态规划 !!!!!!!!!!!!!!
给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。
您在真实的面试中是否遇到过这个题? Yes
说明
最长公共子序列的定义:
最长公共子序列问题是在一组序列(通常2个)中找到最长公共子序列(注意:不同于子串,LCS不需要是连续的子串)。该问题是典型的计算机科学问题,是文件差异比较程序的基础,在生物信息学中也有所应用。
样例
给出”ABCD” 和 “EDCA”,这个LCS是 “A” (或 D或C),返回1
给出 “ABCD” 和 “EACB”,这个LCS是”AC”返回 2
class Solution {public: /** * @param A, B: Two strings. * @return: The length of longest common subsequence of A and B. */ int longestCommonSubsequence(string A, string B) { // write your code here int m=A.size(),n=B.size(); if(m==0||n==0) return 0; vector<vector<int>> dp(m+1,vector<int>(n+1,0)); int maxp=INT_MIN; for(int i=1;i<=n;++i) for(int j=1;j<=m;++j){ if(A[i-1]==B[j-1]) dp[i][j]=dp[i-1][j-1]+1; else dp[i][j]=max(dp[i-1][j],dp[i][j-1]); maxp=max(dp[i][j],maxp); } return maxp; }};
阅读全文
0 0
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列...
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- Android版本提示更新下载
- 学习笔记之JavaScript——知识点(4)
- 常见类---Scanner类
- 计算机字符编码详解二
- Codeforces Round #426 (Div. 2)
- 最长公共子序列
- Android 5.1源代码目录
- 堆排序
- ServiceHot IT学院——ITSS 8月开班通知
- ubuntu14.04中更改python版本
- Android网络编程(二)HttpClient与HttpURLConnection
- Centos7单网卡搭建pptp服务
- RxJava 和 RxAndroid 五(线程调度)
- kettle入门(1)