using System;
class Program
{
public static string MergeOnOverlap(string a, string b)
{
int lenA = a.Length;
int lenB = b.Length;
int maxPossibleverlapLen = Math.Min(lenA, lenB);
int overlap = 0;
// Try longest overlap first
for (int len = maxPossibleverlapLen; len > 0; len--) {
if (string.Compare(a, lenA - len, b, 0, len) == 0) {
overlap = len;
break;
}
}
return a + b.Substring(overlap);
}
static void Main()
{
string a = "fantasy time travel technology";
string b = "technology extraterrestrial life";
Console.WriteLine(MergeOnOverlap(a, b));
}
}
/*
run:
fantasy time travel technology extraterrestrial life
*/