public static void Main(string[] args)
Console.WriteLine(OverlappedStringLength("ab . cdefg", " efghijkl"));
public static int OverlappedStringLength(string s1, string s2) {
if (s1.Length > s2.Length) s1 = s1.Substring(s1.Length - s2.Length);
int[] T = ComputeBackTrackTable(s2);
while (m + i < s1.Length) {
if (s2[i] == s1[m + i]) {
public static int[] ComputeBackTrackTable(string s) {
var T = new int[s.Length];
if (s[pos - 1] == s[cnd]) {