java求最长公共子串的长度

临世驻年 2020-07-27 09:32:57
给定两个字符串,然后求这两个字符串的最长公共子串的最大长度,假设我的f()方法是来求两个字符串的最大公共子串,从头开始逐一比较,如果相等,则继续调用这个方法,使得递归的长度+1,如果不相等,则只要比较s1截掉一个和s2比较,和s2截掉和s1比较,两个中的最大者,如果s1或者s2中有一个长度为0,则最大公共长度就是0,return
...全文
235 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
SpiritPoss 2020-07-27
  • 打赏
  • 举报
回复
package zzl;

public class 最长公共子串 {
public static void main(String[] args) {
int a = f("abcd","xacdb");
System.out.println(a);
}

private static int f(String s1, String s2) {
if(s1.length()==0 || s2.length()==0) { //s1或者s2有一个为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))); //比较两个中更大的
}
}
}
临世驻年 2020-07-27
  • 打赏
  • 举报
回复
临世驻年 2020-07-27
  • 打赏
  • 举报
回复
临世驻年 2020-07-27
  • 打赏
  • 举报
回复

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧