- 0
- 0
- 约1.16千字
- 约 15页
- 2026-05-12 发布于北京
- 举报
LogestCommonSequence问题
求ABCBDAB和BDCABA的最长公共子序列
什么是公共子序列?
子序列,就是原序列不改变顺序,但是可以删除元素得到的序列。ABC有个8子序列:
A
B
C
AB
AC
BC
ABC
空字符串
为什么要求公共子序列呢?
ACGGTGTCGTGCTATGCTGATGCTGACTTATATGCTA
CGTTCGGCTATCGTACGTTCTATTCTATGATTTCTAA
LCS=CGTTCGGCTATGCTTCTACTTATTCTA
例子:lcs(ABCBDAB,BDCABA)
ABCBDAB
BDCABA
ABCBDAB
BDCABA
ABCBDAB
BDCABA
LCS=3BDAB,BCAB和BCBA
暴力求解
把他们都求出来
求交集(128X64)
求最大值
暴力求解的复杂度
动态规划
暴力求解是将原问题直接拆分成了最小的粒度,这样做有性能问题(复杂度不是多项式级别,而是指数级别)
思考是否可以通过另外的拆解方法,从而简化计算量——动态规划(DynamicProgrammming)
原问题的拆分-1
例如:BANANA,ATANA
Case1:结尾字母相同
BANANA
ATANA
a最后一个字符都在lcs
BANANA
ATANA
b最后一个字符都不在lcs
这种情况不成立
c最后
原创力文档

文档评论(0)