【问题】
给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度。
输入描述:
输入为两行字符串(可能包含空格),长度均小于等于50.
输出描述:
输出为一个整数,表示最长公共连续子串的长度。
示例1
输入
abcde abgde
输出
2
①
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str1 = sc.nextLine();
String str2 = sc.nextLine();
char[] schar1 = str1.toCharArray();
char[] schar2 = str2.toCharArray();
int len1 = schar1.length;
int len2 = schar2.length;
int[][] dp = new int[len1][len2];
int maxLen = 0;
for (int i = 0;i < len1;i ++){
for (int j = 0;j < len2;j ++){
if (schar1[i] == schar2[j]){
if (i > 0 && j > 0){
dp[i][j] = dp[i - 1][j - 1] + 1;
}else {
dp[i][j] = 1;
}
}
if (maxLen < dp[i][j]){
maxLen = dp[i][j];
}
}
}
System.out.println(maxLen);
}
}