Contexte
Une poupée matriochka (ou poupée russe de nidification) est un ensemble de poupées qui s'emboîtent les unes dans les autres. J'ai accidentellement mélangé ma collection de poupées matriochka et je ne me souviens pas laquelle va à l'intérieur de laquelle.
Objectif
Étant donné une liste de chaînes uniques , triez-les en poupées matriochka imbriquées. Chaque chaîne est une poupée individuelle, et une poupée matriochka est une liste de chaînes.
Règles
Soit min(a,b)
le min lexicographique des chaînes a
et b
. Supposons a ⊂ b
que a
c'est une sous-chaîne de b
. Alors,
- La liste des poupées matriochka doit être triée lexicographiquement
- La chaîne
a
peut tenir dans la chaîneb
sia ⊂ b
- Si
a ⊂ b
eta ⊂ c
, alorsa
ira à l'intérieurmin(b,c)
- Si les deux
a ⊂ c
etb ⊂ c
, maisa ⊄ b
b ⊄ a
, alors seulementmin(a,b)
iront à l'intérieurc
- Si les deux
a ⊂ c
etb ⊂ c
, et aussia ⊂ b
, alors seulementb
iront à l'intérieurc
. C'est-à-dire que les superstrings passent avant les sous-chaînes afin que la matriochka ne se termine pas prématurément.
Exemples
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
? Selon la règle 3, les deuxab
etba
doivent entrer dansaba
, et selon la règle 4,ba
ne peut pas entrer dans l'unaba
ou l' autrebab
.Réponses:
Python 2 , 298 octets
Essayez-le en ligne!
-28 octets avec conseils de @dylnan, recherche de bogue par @Dennis et correction de bogue par @ Mr.Xcoder
la source
i
devenir une fonction lambda et j'ai changé le nomout
de la variable eno
.out
variable ne change jamais. Essayez-le en ligne!out
nom de variable à 3 caractères ... Sérieusement: P?