题解 | #公共子串计算#
公共子串计算
https://www.nowcoder.com/practice/98dc82c094e043ccb7e0570e5342dd1b
import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in); String s1 = scan.next(); String s2 = scan.next(); int cols = s1.length() + 1; int rows = s2.length() + 1; char[] ar1 = s1.toCharArray(); char[] ar2 = s2.toCharArray(); int[][] arr = new int[rows][cols]; for (int i = 1; i < rows; i++) { for (int j = 1; j < cols; j++) { if (ar1[j - 1] == ar2[i - 1] ) arr[i][j] = arr[i - 1][j - 1] + 1; } } int max = 0; for (int i = 1; i < rows; i++) { for (int j = 1; j < cols; j++) { if (arr[i][j] > max) max = arr[i][j]; } } System.out.println(max); } }