题解
将字符串1作为基准,在字符串1的基础上判断每一个字母开头最长子串长度,将其存入list中,即字符串1长度是多少,list长度就有多长,最后求出list中最大值即可
代码如下
import java.util.*;
public class two {
public static int num(String str1,String str2){
List<Integer> list = new ArrayList<>();
int i = 0;
int max = 0;
int tmp = 0;
while(i < str1.length()){
int count = 0;
int j = 0;
tmp = i;
max = 0;
while(i < str1.length()&&j < str2.length()){
if(str1.charAt(i) != str2.charAt(j)){
i = tmp;
count = 0;
if(str1.charAt(i) == str2.charAt(j)){
count++;
i++;
}
j++;
}else{
i++;
j++;
count++;
}
if(count > max){
max = count;
}
}
i = tmp;
i++;
list.add(max);
}
max = list.get(0);
for(i = 1;i < list.size();i++){
if(list.get(i) > max){
max = list.get(i);
}
}
return max;
}
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
String str1 = scan.next();
String str2 = scan.next();
int ret = num(str1,str2);
System.out.println(ret);
}
}
}