一、问题描述

由于最长公共子序列LCS是一个比较经典的问题,主要是采用动态规划(DP)算法去实现,理论方面的讲述也非常详尽,本文重点是程序的实现部分,所以理论方面的解释主要看这篇博客:http://blog.csdn.net/yysdsyl/article/details/4226630。之前看书,不是很明白,引用的这篇博客通过实例可以很清楚的解释,更好理解动态规划这个问题。

二、程序设计

动态规划之最长公共子序列LCS(Longest Common Subsequence)-LMLPHP

//下面的这个函数是用来显示最长公共子序列的,利用递归函数完成

动态规划之最长公共子序列LCS(Longest Common Subsequence)-LMLPHP

动态规划之最长公共子序列LCS(Longest Common Subsequence)-LMLPHP

三、程序结果

这是常见的例子:将所有满足条件的最长公共字符串都显示出来

动态规划之最长公共子序列LCS(Longest Common Subsequence)-LMLPHP

动态规划之最长公共子序列LCS(Longest Common Subsequence)-LMLPHP

当两个字符串的最长公共字符串为空时,显示相应的信息:

动态规划之最长公共子序列LCS(Longest Common Subsequence)-LMLPHP

05-04 01:58