题解 | #查找两个字符串a,b中的最长公共子串#
查找两个字符串a,b中的最长公共子串
https://www.nowcoder.com/practice/181a1a71c7574266ad07f9739f791506
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String a = in.nextLine();
String b = in.nextLine();
String shortLine = null;
String longLine = null;
if (a.length() < b.length()){
longLine = b;
shortLine = a;
} else {
longLine = a;
shortLine = b;
}
String comShort[] = shortLine.split("");
List<String> list = new ArrayList<>();
for (int p = 0; p < comShort.length; p++) {
String tmp = "";
for (int i = p; i < comShort.length; i++) {
tmp += comShort[i];
if (longLine.contains(tmp)) {
list.add(tmp);
}
}
}
int maxlenth = 0;
for (int i=0;i < list.size();i++) {
if (list.get(i).length() > maxlenth){
maxlenth = list.get(i).length();
}
}
int finalMaxlenth = maxlenth;
String res = list.stream().filter(s -> s.length()==finalMaxlenth).findFirst().get();
System.out.println(res);
}
}

