//动态规划查找两个字符串最大子串 public static string lcs(string word1, string word2) { int max = 0; int index = 0; int[,] nums = new int[word1.Length + 1,word2.Length+1]; for (int i = 0; i <= word1.Length; i++) { for (int j = 0; j <= word2.Length; j++) { nums[i,j] = 0; } } for (int i = 0; i <= word1.Length; i++) { for (int j = 0; j <= word2.Length; j++) { if (i == 0 || j == 0) { nums[i, j] = 0; } else { if (word1[i - 1] == word2[j - 1]) { nums[i,j] = nums[i - 1, j - 1] + 1; } else { nums[i, j] = 0; } } if (max < nums[i, j]) { max = nums[i, j]; index = i; } } } string str = ""; if (max == 0) { return ""; } else { for (int i = index-max; i <= max; i++) { str += word2[i]; } return str; } }