题目:求两个字符串的最大公共子序列
这里子序列和子串需要区分一下,子序列不需要字符串里元素紧挨着,但子串要求前后元素紧挨,这里求子序列可以用递归法来做
代码如下:
public class MaxComSub {
public 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)));
}
}
public static void main(String[] args) {
int k = f("abcddd","aabece");
System.out.print(k);
}
}
所以最后答案为3,大家可以运行一下,公共子序列为abc
最后子串的问题大家也可以思考一下该如何做,下次发最大公共子串的蓝桥杯真题解法
欢迎大家点赞评论,点个关注也可以
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)