import java.util.*; public class LongestSubstring { public int findLongest(String A, int n, String B, int m) { // write code here int res = 0; int[][] dp = new int[n + 1][m + 1]; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (A.charAt(i - 1) == B.charAt(j - 1)) { dp[i][j] = dp[i - 1][j - 1] + 1; res = Math.max(res, dp[i][j]); } else { dp[i][j] = 0; } } } return res; } }