Palavras conectadas

Para cada par adjacente de palavras, encontre o final mais longo da primeira palavra que corresponda ao início da próxima. Una as palavras escrevendo essa sobreposição uma única vez. Retorne a string unida e o menor comprimento de sobreposição encontrado entre qualquer par.

Exemplos

join(["oven", "envier", "erase", "serious"]) ➞ ["ovenvieraserious", "2"]

join(["move", "over", "very"]) ➞ ["movery", "3"]

join(["to", "ops", "psy", "syllable"]) ➞ ["topsyllable", "1"]

// "to" and "ops" share "o" (1)
// "ops" and "psy" share "ps" (2)
// "psy" and "syllable" share "sy" (2)
// the minimum overlap is 1

join(["aaa", "bbb", "ccc", "ddd"]) ➞ ["aaabbbcccddd", "0"]

Notas

Mais especificamente, observe a sobreposição entre as letras finais das palavras anteriores e as letras iniciais da próxima palavra.