书中3.4节最长公共子序列,第77页的程序中的下标弄错了,
书中程序双for循环下的第一个判断语句
if(x[i]==y[j]){
c[i][j]=c[i-1][j-1]+1;
b[i][j]=1;
}
应该矫正为:
if(x[i-1]==y[j-1]){
c[i][j]=c[i-1][j-1]+1;
b[i][j]=1;
}
注意动态规划求最长公共子序列的下标,计算前i个字符和前j个字符有多少个公共字符的结果是记录在动态规划记录表的[i+1][j+1]中,而不是表[i][j]中,