public static void GetMax(string s1, string s2) { char[] c1 = s1.ToCharArray(); char[] c2 = s2.ToCharArray(); int b = 0, e = 0; bool flag = false; for (int i = 0; i < s1.Length; i++) { int temp = i; int bt = 0; int et = 0; for (int h = 0; h < s2.Length; h++) { if (c1[temp] == c2[h]) { if (flag) { et = h; //标记结束 } else { bt = h; //标记开始 flag = true; } if (temp < s1.Length - 1) { temp++; } else { flag = false; if (et - bt > e - b) { e = et; b = bt; } break; } } else { flag = false; if (et - bt > e - b) { e = et; b = bt; } temp = i; } } } Console.WriteLine(s2.Substring(b, e - b + 1)); }