Palabras conectadas

Para cada par adyacente de palabras, encuentra la terminación más larga de la primera palabra que coincida con el comienzo de la siguiente. Une las palabras escribiendo esa coincidencia una sola vez. Devuelve la cadena unida y la longitud de coincidencia más pequeña encontrada entre cualquier par.

Ejemplos

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

Más específicamente, observa la coincidencia entre las letras finales de las palabras anteriores y las letras iniciales de la siguiente palabra.