最长公共子序列和最长公共子串
2015-10-29 13:46
302 查看
什么是最长公共子序列呢?举个简单的例子吧,一个数列S,若分别是两个或多个已知序列的子序列,且是所有符合条件序列中最长的,则S称为已知序列的最长公共子序列。
举例如下,如:有两个随机数列,1 2 3 4 5 6 和 3 4 5 8 9,则它们的最长公共子序列便是:3 4 5。
之前一直不明白:最长公共子串和最长公共子序列的区别。
最长公共子串(Longest Common Substirng)和最长公共子序列(Longest Common Subsequence,LCS)的区别为:子串是串的一个连续的部分,子序列则是从不改变序列的顺序,而从序列中去掉任意的元素而获得新的序列;也就是说,子串中字符的位置必须是连续的,子序列则可以不必连续。
比如:s1: xyyxz
s2: xyyz
s1,s2的最大公共子序列为xyyz,最长公共子串为xyy;
举例如下,如:有两个随机数列,1 2 3 4 5 6 和 3 4 5 8 9,则它们的最长公共子序列便是:3 4 5。
之前一直不明白:最长公共子串和最长公共子序列的区别。
最长公共子串(Longest Common Substirng)和最长公共子序列(Longest Common Subsequence,LCS)的区别为:子串是串的一个连续的部分,子序列则是从不改变序列的顺序,而从序列中去掉任意的元素而获得新的序列;也就是说,子串中字符的位置必须是连续的,子序列则可以不必连续。
比如:s1: xyyxz
s2: xyyz
s1,s2的最大公共子序列为xyyz,最长公共子串为xyy;
相关文章推荐
- http协议简介
- 执行计划初学一
- 常见小算法集合
- 小议隐式转换引起的问题
- ACM北大的第1001题
- Android入门——数字组成的字符串转化为货币格式
- 我的django之旅(四)模型,模板和视图
- jsp注释
- How to use For loop in CruiseControl.net
- 继承、实现、依赖、关联、聚合、组合的联系与区别
- js判断请求的url是否可访问,支持跨域判断
- Opera 33 正式发布
- Python练习册,第 0000 题
- Maven实战 第8章聚合与继承
- AlarmManager, WakeLock and IntentService
- python调用解释器
- OC学习之-----类的初始化方法的使用
- 糗事百科DEMO
- 解决Android Studio ADB not responding...问题
- 关于自己写博客的感想