转:最长公共子串和最长公共子序列的区别
来源:互联网 发布:申万宏源手机炒股软件 编辑:程序博客网 时间:2024/06/01 16:13
一、什么是最长公共子序列
什么是最长公共子序列呢?举个简单的例子吧,一个数列S,若分别是两个或多个已知序列的子序列,且是所有符合条件序列中最长的,则S称为已知序列的最长公共子序列。
举例如下,如:有两个随机数列,1 2 3 4 5 6 和 3 4 5 8 9,则它们的最长公共子序列便是:3 4 5。
一直不明白:最长公共子串和最长公共子序列的区别。
上网查了下,最长公共子串(Longest Common Substirng)和最长公共子序列(Longest Common Subsequence,LCS)的区别为:子串是串的一个连续的部分,子序列则是从不改变序列的顺序,而从序列中去掉任意的元素而获得新的序列;也就是说,子串中字符的位置必须是连续的,子序列则可以不必连续。
二、蛮力法
蛮力法是解决最长公共子序列问题最容易想到的方法,即对S的每一个子序列,检查是否为T的子序列,从而确定它是否为S和T的公共子序列,并且选出最长的公共子序列。
S和T的所有子序列都检查过后即可求出S和T的最长公共子序列。S的一个子序列相应于下标序列1,2,...,n的一个子序列。因此,S共有2^n个子序列。当然,T也有2^m个子序列。
因此,蛮力法的时间复杂度为O(2^n * 2^m),这可是指数级别的啊。
0 0
- 最长公共子序列和最长公共子串区别
- 转:最长公共子串和最长公共子序列的区别
- 最长公共子序列和最长公共子串的区别
- 最长公共子串和最长公共子序列
- 最长公共子序列和最长公共子串
- 最长公共子序列和最长公共子串
- 最长公共子串和最长公共子序列
- 最长公共子序列和最长公共子串
- 最长共公共子序列和最长公共子串
- 最长公共子序列和最长公共子串
- 最长公共子序列和最长公共子串
- 最长公共子串和最长公共子序列
- 最长公共子串和最长公共子序列
- 最长公共子序列和最长公共子串
- 最长公共子序列和最长公共子串
- 最长公共子串和最长公共子序列
- 最长公共子串和最长公共子序列
- 最大子序列和、最长递增子序列、最长公共子串、最长公共子序列
- 网站资源
- U-Boot命令大全(功能参数及用法)
- 常用正则表达式
- 2015年 Autodesk 助力云应用项目开发活动
- Android 加载数据等待时 小人奔跑进度动画
- 转:最长公共子串和最长公共子序列的区别
- Android 集成 支付宝
- 【FOJ 1405】 做减法
- Mac下配置Maven
- 调用getChildFragmentManager时出现的Bug
- VS2013引用静态库
- c#串口通信常用类
- Android service详解
- iOS开发UI篇—CAlayer(创建图层)