原创: hxj7
本文介绍如何求解两个字符串的最长公共子序列。
最长公共子序列问题
前文《序列比对(二十三)——最长公共子字符串》介绍了如何求解两个字符串的最长公共子字符串,本文将介绍如何求解两个字符串的最长公共子序列。二者听起来很像,所以我们首先得说明一下子字符串和子序列的区别。
与最长公共子字符串问题类似,最长公共子序列问题也是一种序列比对问题,可以用动态规划解决,只是在迭代时允许插入和缺失,而不允许错配而已。如果是匹配,得分为1,否则得分为0。其迭代公式如下:
效果如下:
动态规划求解最长公共子序列的代码
具体代码如下:
1
(公众号:生信了)