在两个字符串中,有些字符会一样,可以形成的子序列也有可能相等,因此,长度最长的相等子序列便是两者间的最长公共字序列,其长度可以使用动态规划来求。
以s1={1,3,4,5,6,7,7,8},s2={3,5,7,4,8,6,7,8,2}为例。
创建 DP数组dp[][];
import java.util.ArrayList;
/**
* @author wl
* @Data 2020-05-07 21:56
* 最长公共子序列
*/
public class LCS_dp {
public static void main(String[] args) {
//35778
/*System.out.println(dfs("123546487979","46879214"));
System.out.println(solution("123546487979","46879214"));*/
System.out.println(dfs("13456778","357486782"));
System.out.println(solution("13456778","357486782"));
}
/**
* 多层递归
* @param s1
* @param s2
* @return
*/