题目描述
给定两个字符串,请编写代码,输出最长公共子串(Longest Common Substring),是指两个字符串中的最长的公共子串,要求子串一定是连续。
输入描述:
文本格式,2个非空字符串(字母数字组成),2个字符串以","英文逗号分割,字符串长度均小于等于100。
输出描述:
整形,为匹配到的最长子串长度
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] temp = br.readLine().split("\\,");
String s1 = temp[0], s2 = temp[1];
int[][] dp = new int[s1.length()+1][s2.length()+1];
int max = 0;
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)){
dp[i][j] = dp[i-1][j-1]+1;
max = Math.max(max, dp[i][j]);
}
}
}
System.out.println(max);
}
}