longest-common-subsequence
2015-06-09 08:46
495 查看
中等 最长公共子序列
37%通过
给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。
您在真实的面试中是否遇到过这个题?
Yes
样例
给出"ABCD" 和 "EDCA",这个LCS是 "A" (或 D或C),返回1
给出 "ABCD" 和 "EACB",这个LCS是"AC"返回
2
注意
说明
最长公共子序列的定义:
最长公共子序列问题是在一组序列(通常2个)中找到最长公共子序列(注意:不同于子串,LCS不需要是连续的子串)。该问题是典型的计算机科学问题,是文件差异比较程序的基础,在生物信息学中也有所应用。
https://en.wikipedia.org/wiki/Longest_common_subsequence_problem
public class Solution { /** * @param A, B: Two strings. * @return: The length of longest common subsequence of A and B. */ public int longestCommonSubsequence(String A, String B) { int n = A.length(); int m = B.length(); int f[][] = new int[n + 1][m + 1]; for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ f[i + 1][j + 1] = Math.max(f[i][j + 1], f[i + 1][j]); if(A.charAt(i) == B.charAt(j)) f[i + 1][j + 1] = f[i][j] + 1; } } return f [m]; } }
REF: http://blog.csdn.net/yysdsyl/article/details/4226630 http://www.cnblogs.com/huangxincheng/archive/2012/11/11/2764625.html http://www.cnblogs.com/xudong-bupt/archive/2013/03/15/2959039.html
相关文章推荐
- pytest框架系列教程:pytest框架在UI自动化测试中的应用
- Android之UI主线程更新问题
- 如何在Sublime Text中创建build system命令打开浏览器预览html页面
- UIButton 设置圆角 边框颜色 点击回调方法
- UIScrollView常见属性
- java基础—GUI概述
- 北京周边ui设计培训机构哪里好
- UIScrollView无法滚动的解决办法
- GuozhongCrawler系列教程 (5) TransactionRequest详解
- iOS开发UI之日期控件的使用(UIDatePicker)
- DuiVision开发教程(15)-DUI文字控件基础类
- 利用NGUI组件简单识别滑动屏幕操作
- git gui 无法获取你的身份 处理办法
- 使用APKTool+dex2jar+jd_gui反编译apk文件
- SVN quick guide
- 黑马程序员——Java基础—GUI
- OC中的NSValue
- 同一项目中的广播(音乐播放进度的UI跟新)
- Halcon 学习总结——邮票目录检测(stamp_catalogue)
- Quartz 2D 简单使用