题解 | #查找两个字符串a,b中的最长公共子串#
查找两个字符串a,b中的最长公共子串
https://www.nowcoder.com/practice/181a1a71c7574266ad07f9739f791506
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
//公共子串
String s1=in.nextLine();
String s2=in.nextLine();
int index=0;
int max=0;
if(s1.length()>s2.length())
{
String tmp=s1;
s1=s2;
s2=tmp;
}
int[][] dp=new int[s1.length()+1][s2.length()+1];
for(int i=1;i<=s1.length();i++)
{
for(int j=1;j<=s2.length();j++)
{
if(s1.charAt(i-1)==s2.charAt(j-1))//否则九尾0
{
dp[i][j]=dp[i-1][j-1]+1;//续前缘
if(max<dp[i][j])
{
index=i-1;//索引
max=dp[i][j];
}
}
}
}
System.out.println(s1.substring(index-max+1,index+1));
}
}


