Considere la siguiente lista de palabras ordenadas alfabéticamente:
balderdash
ballet
balloonfish
balloonist
ballot
brooding
broom
Todas las palabras comienzan con b
, y las primeras 5 comienzan con bal
. Si solo miramos las primeras 2 palabras:
balderdash
ballet
podríamos escribir en su lugar:
balderdash
+let
donde ' '
se usa donde una palabra comparte un carácter de prefijo con la palabra anterior; excepto el '+'
carácter que indica el ÚLTIMO carácter donde la segunda palabra comparte un prefijo con la palabra anterior.
Esta es una especie de visualización 'trie' : el padre es ' bal
' y tiene 2 descendientes: 'derdash'
y 'let'
.
Con una lista más larga, como:
balderdash
ballet
brooding
también podemos usar el carácter de canalización '|'
para aclarar dónde termina el prefijo compartido, de la siguiente manera:
balderdash
| +let
+rooding
y el árbol equivalente tendría una raíz de 'b'
tener dos hijos: el subárbol con raíz 'al'
y sus dos hijos 'derdash'
y 'let'
; y 'rooding'
.
Si aplicamos esta estrategia a nuestra lista original,
balderdash
ballet
balloonfish
balloonist
ballot
brooding
broom
obtenemos resultados que se parecen a:
balderdash
| +let
| +oonfish
| | +ist
| +t
+rooding
+m
Si dos palabras consecutivas en la lista no tienen prefijo compartido, no se sustituyen caracteres especiales; Por ejemplo, para la lista:
broom
brood
crude
crumb
queremos la salida:
broom
+d
crude
+mb
Entrada
Las palabras en la entrada estarán compuestas únicamente de caracteres alfanuméricos (sin espacios ni signos de puntuación); Esto puede ser en forma de una lista de cadenas, una sola cadena o cualquier otro enfoque razonable, siempre que especifique el formato elegido. No hay dos palabras consecutivas iguales. La lista se ordenará alfabéticamente.
Salida
Su salida puede contener espacios en blanco finales por línea o en total, pero no espacios en blanco iniciales. Una lista de cadenas o similar también sería aceptable.
Este es el código de golf ; El código más corto en cada idioma conserva los derechos de fanfarronear. Se aplican las prohibiciones habituales contra las lagunas.
Casos de prueba
Input:
apogee
apology
app
apple
applique
apply
apt
Output:
apogee
|+logy
+p
|+le
| +ique
| +y
+t
Input:
balderdash
ballet
balloonfish
balloonist
ballot
brooding
broom
donald
donatella
donna
dont
dumb
Output:
balderdash
| +let
| +oonfish
| | +ist
| +t
+rooding
+m
donald
| |+tella
| +na
| +t
+umb
+
debajo del primero o
, pero no escribí el desafío, así que no estoy seguro.
ball
despuésballoon
? ¿Qué salida debemos esperar?