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 ay b. Deje a ⊂ bque denote que aes una subcadena de b. Luego,
- La lista de muñecas matryoshka debe clasificarse lexicográficamente
- La cadena
apuede caber en la cadenabsia ⊂ b - Si
a ⊂ bya ⊂ c, entoncesaentrarámin(b,c) - Si ambos
a ⊂ cyb ⊂ c, peroa ⊄ bb ⊄ a, solomin(a,b)entraránc - Si ambos
a ⊂ cyb ⊂ c, y tambiéna ⊂ b, solobentrará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, ambosabybadeberían entraraba, y por la regla 4,bano pueden entrar en ningunoabaobab.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
ien una función lambda y cambió el nombre de la variableoutao.outvariable nunca cambia. Pruébalo en línea!outnombre de variable de 3 caracteres ... En serio: P?