动态规划:最长公共子序列和最长公共子串

递推方程:

     0,  i = 0 or j = 0

C[i,j] =   C[i-1,j-1] + 1, i,j > 0 and Xi = Yj

     max{C[i-1,j],C[i,j-1]}, i,j > 0 and Xi != Yj

 使用二维int[][]辅助存储过程

Xn串和Ym串,从后往前看,如果Xn=Ym,则最长公共子序列为Xn-1和Ym-1串的最长公共子序列加1

            如果Xn != Ym,则最长公共子序列必在Xn-1和Ym与Xn与Ym-1中产生

最长公共子串和最长公共子序列类似,只是在Xi != Yj时,把C[i][j]置0,一路注意保存最大值

posted on 2017-08-12 19:16  zawjdbb  阅读(129)  评论(0编辑  收藏  举报

导航