Auf Anhieb fällt mir nur das naive Vorgehen ein:
- Suche das erste Zeichen des zweiten Strings im ersten Strings (also im Beispiel "H")
- Überprüfe, ob ab dieser Stelle der Rest des ersten Strings mit dem Anfang des zweiten übereinstimmt
- Falls nicht, suche das nächste Vorkommen des ersten Zeichens im zweiten Strings. (*)
- Falls ja, hat man die Überlappung gefunden und kann die Strings zusammenbauen
(*) diese Stelle kann man ggf. beschleunigen, wenn man ähnliche Tricks anwendet wie bei Knuth-Morris-Pratt. Damit sollte man dann auf eine lineare Worst-Case-Laufzeit kommen, die so erstmal nicht garantiert ist.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.