在两个字符串中,有些字符会一样,可以形成的子序列也有可能相等,因此,长度最长的相等子序列便是两者间的最长公共字序列,其长度可以使用动态规划来求. 以s1={1,3,4,5,6,7,7,8},s2={3,5,7,4,8,6,7,8,2}为例. 借用<算法导论>中的推导图: 创建 DP数组C[][]; 图中的空白格子需要填上相应的数字(这个数字就是c[i][j]的定义,记录的LCS的长度值).填的规则依据递归公式,简单来说:如果横竖(i,j)对应的两个元素相等,该格子的值 = c[i-1,j-1]…