Hintergrund
Eine Matroschka-Puppe (oder russische Nistpuppe) ist eine Reihe von Puppen, die ineinander passen. Ich habe versehentlich meine Sammlung von Matroschka-Puppen verwechselt und weiß nicht mehr, welche in welche passt.
Zielsetzung
In einer vorgegebenen Liste von einzigartigen Strings, sortieren sie in verschachtelte Matrjoschka - Puppen. Jede Saite ist eine individuelle Puppe, und eine Matroschka-Puppe ist eine Liste von Saiten.
Regeln
Sei min(a,b)
das lexikografische Minimum von Strings a
und b
. Es sei a ⊂ b
bezeichnet, dass dies a
eine Teilzeichenfolge von ist b
. Dann,
- Die Liste der Matroschka-Puppen muss lexikographisch sortiert sein
- String
a
kann in String passen,b
wenna ⊂ b
- Wenn
a ⊂ b
unda ⊂ c
, danna
wird reingehenmin(b,c)
- Wenn beide
a ⊂ c
undb ⊂ c
, abera ⊄ b
b ⊄ a
, dann wird nurmin(a,b)
hineingehenc
- Wenn beide
a ⊂ c
undb ⊂ c
, und aucha ⊂ b
, dann wird nurb
hineingehenc
. Das heißt, Superstrings stehen vor Teilstrings, damit die Matroschka nicht vorzeitig beendet wird.
Beispiele
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
? Durch die Regel 3, die beideab
undba
gehen inaba
und um 4 Regelba
nicht gehen kann entwederaba
oderbab
.Antworten:
Python 2 , 298 Bytes
Probieren Sie es online!
-28 Bytes mit Tipps von @dylnan, Fehlersuche von @Dennis und Fehlerbehebung von @ Mr.Xcoder
quelle
i
in eine Lambda-Funktion umgewandelt und änderte den Variablennamenout
ino
.out
Variable ändert sich nie. Probieren Sie es online!out
3-Zeichen-Variablenname ... Ernsthaft: P?