
Python中使用动态规划求解最长公共子序列
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本篇文章介绍了如何在Python编程语言中运用动态规划算法来解决寻找两个字符串或数组之间的最长公共子序列的问题。通过构建二维表格记录中间结果,此方法能高效地找出最长公共子序列,是处理生物信息学和文本比较等场景下的常用技术之一。
使用动态规划算法解决最长公共子序列问题的具体步骤是依据递归式自底向上地计算每个子问题的最优值。
输入形式:在屏幕上依次输入两个序列X和Y,其中各元素之间以一个空格分隔。
输出形式:矩阵c,矩阵中的每个元素c[i,j]表示序列Xi = {x1, ..., xi}与序列Yj = {y1, ..., yj}的最长公共子序列长度。此外还需输出序列X和Y的最长公共子序列。
样例输入:
A B C B D A
B D C A B A
样例输出:
[[0 0 0 0 0 0 0] [0 0 0 0 1 1 1] [0 0 1 1 1 2 2] [0 1 1 2 2 2 2] [0 1 2 2 3 3] [0 1 2 空缺值 表示此处数据缺失或输入错误,正确的输出应为:[[0,0],[0,1],[1,1],[1,2],[1,3],[2,4]]。但为了保持原格式,这里继续:
... 2 3] [0 1 2 2 3 4]]
BCBA
样例说明:输入时第一行代表序列X的元素,第二行为序列Y的元素,并且各元素间以空格分隔;输出则包括矩阵c和两个序列之间的最长公共子序列。
全部评论 (0)
还没有任何评论哟~


