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

一、问题描述

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

二、程序设计

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

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

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

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

三、程序结果

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

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

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

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

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

上一篇:51nod 1006 最长公共子序列Lcs 【LCS/打印path】


下一篇:SecureCRT终端上使用spark-shell时按退格键无反应的解决方法