Antecedentes
Una muñeca matryoshka (o muñeca rusa de anidación) es un conjunto de muñecas que encajan unas dentro de otras. Accidentalmente mezclé mi colección de muñecas matryoshka y no recuerdo cuál entra dentro de cuál.
Objetivo
Dada una lista de cadenas únicas , clasifíquelas en muñecas matrioska anidadas. Cada cuerda es una muñeca individual, y una muñeca matryoshka es una lista de cuerdas.
Reglas
Dejar min(a,b)
ser el min lexicográfico de cadenas a
y b
. Deje a ⊂ b
que denote que a
es una subcadena de b
. Luego,
- La lista de muñecas matryoshka debe clasificarse lexicográficamente
- La cadena
a
puede caber en la cadenab
sia ⊂ b
- Si
a ⊂ b
ya ⊂ c
, entoncesa
entrarámin(b,c)
- Si ambos
a ⊂ c
yb ⊂ c
, peroa ⊄ b
b ⊄ a
, solomin(a,b)
entraránc
- Si ambos
a ⊂ c
yb ⊂ c
, y tambiéna ⊂ b
, solob
entraránc
. Es decir, las supercadenas van antes que las subcadenas para que la matrioska no se termine prematuramente.
Ejemplos
In:
hahaha, hah, lol, lololol, bahaha, bah, haha, ah
Out:
bahaha, bah, ah
hahaha, haha, hah
lololol, lol
In:
aa, aaaa, a, aaaaaaaaaa
Out:
aaaaaaaaaa, aaaa, aa, a
ab, ba, aba, bab
? Por la regla 3, ambosab
yba
deberían entraraba
, y por la regla 4,ba
no pueden entrar en ningunoaba
obab
.Respuestas:
Python 2 , 298 bytes
Pruébalo en línea!
-28 bytes con consejos de @dylnan, búsqueda de errores por @Dennis y corrección de errores por @ Mr.Xcoder
fuente
i
en una función lambda y cambió el nombre de la variableout
ao
.out
variable nunca cambia. Pruébalo en línea!out
nombre de variable de 3 caracteres ... En serio: P?