/*
*递归小程序_求两个串的最大公共子序列的长度
* 1、参数要一定变化
* 2、每次都要降低规模
*/
public class PublicLength {
public static void main(String[] args) {
int k = f("fabckdE","xbacdE");
System.out.println(k);//4
}
int k = f("fabckdE","xbacdE");
System.out.println(k);//4
}
private static int f(String s1, String s2) {
if(s1.length()==0 || s2.length()==0)//出口
return 0;
if(s1.charAt(0)==s2.charAt(0))//主体
return f(s1.substring(1),s2.substring(1))+1;
else
return Math.max(f(s1.substring(1),s2), f(s1,s2.substring(1)));
}
if(s1.length()==0 || s2.length()==0)//出口
return 0;
if(s1.charAt(0)==s2.charAt(0))//主体
return f(s1.substring(1),s2.substring(1))+1;
else
return Math.max(f(s1.substring(1),s2), f(s1,s2.substring(1)));
}
}