题解 | #查找两个字符串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); } } }