题解 | #查找两个字符串a,b中的最长公共子串#
查找两个字符串a,b中的最长公共子串
https://www.nowcoder.com/practice/181a1a71c7574266ad07f9739f791506
import java.util.Scanner;
// mark 一下
// 注意和题目:《HJ75 公共子串计算》
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
String s1 = in.nextLine();
String s2 = in.nextLine();
if (s1.length() > s2.length()) {
String tmp = s1;
s1 = s2;
s2 = tmp;
}
int ansLength = 0;
String ans = "";
int length = s1.length();
for (int i = 0; i < length; i++) {
for (int j = length; j > i; j--) {
String substr = s1.substring(i, j);
if (s2.contains(substr)) {
// 如果存在多个 需要输出的是第一个 因此这里是大于 而不是大于等于
if (j - i > ansLength) {
ans = substr;
ansLength = j - i;
}
break;
}
}
}
System.out.println(ans);
}
}
}

查看20道真题和解析
