本文大部分参考July博客的关于动态规划的分析,代码贴在此仅作记忆和分享。
概念解释:
1) 最长子序列,两个字符串中满足相同顺序的子字符序列,如 abefgs和acehfg的最长子序列为aefg
2) 最长子串,两个字符串中相同的子串,即必须是连续相同
以上两个问题的代码如下:
/**
* 动态规划求解最长子串和最长子序列问题
* @author mwd
* @2013-9-17
*
*/
public class DanymicProgramming {
private final int kLeft = 1;
private final int kUp = 2;
private final int kLeftUp = 3;
/**
* 获取最长公共子串,即必须是连续的
* @param str1
* @param str2
* @ret