给定两个字符串,找到最长的公共子字符串,比如String1=abc12dfe string2=abdec12dfab 所以公共子字符串为c12df。
思路:动态规划,以每个字符为尾字符。
代码:
public class Main { //生成dp数组 public static int[][] getdp(char[] c1, char[] c2) { int len1 = c1.length; int len2 = c2.length; int[][] dp = new int[len1][len2]; //第一行填充 for(int j=0; j=max) { max = dp[i][j]; end = i; } } } return s1.substring(end-max+1,end+1); } public static void main(String[] args) { String s1 = "A1234B"; String s2 = "CD1234"; System.out.println(lcs(s1, s2)); }}