How to merge two strings based on shared suffix and prefix in PHP

1 Answer

0 votes
function merge_on_overlap(string $a, string $b): string {
    $lenA = strlen($a);
    $lenB = strlen($b);

    $maxPossibleverlapLen = min($lenA, $lenB);

    $overlap = 0;

    // Try longest overlap first
    for ($len = $maxPossibleverlapLen; $len > 0; $len--) {
        if (substr($a, $lenA - $len) === substr($b, 0, $len)) {
            $overlap = $len;
            break;
        }
    }

    return $a . substr($b, $overlap);
}

$a = "fantasy time travel technology";
$b = "technology extraterrestrial life";

echo merge_on_overlap($a, $b);



/*
run:

fantasy time travel technology extraterrestrial life   

*/

 



answered Jan 24 by avibootz
...