sfondo
Una bambola matryoshka (o bambola russa di nidificazione) è un set di bambole che si incastrano l'una nell'altra. Ho accidentalmente confuso la mia collezione di bambole matrioska e non ricordo quale va dentro quale.
Obbiettivo
Dato un elenco di stringhe uniche , ordinale in bambole matrioska nidificate. Ogni stringa è una singola bambola e una bambola matrioska è un elenco di stringhe.
Regole
Lascia che min(a,b)sia il min lessicografico di stringhe ae b. Lasciate a ⊂ bindicare che aè una sottostringa di b. Poi,
- L'elenco delle bambole matrioska deve essere ordinato lessicograficamente
- La stringa
apuò adattarsi alla stringabsea ⊂ b - Se
a ⊂ bea ⊂ c, alloraaandrà dentromin(b,c) - Se entrambi
a ⊂ ceb ⊂ c, maa ⊄ bb ⊄ a, alloramin(a,b)andranno solo dentroc - Se entrambi
a ⊂ ceb ⊂ c, e anchea ⊂ b, allorabandranno solo dentroc. Cioè, le superstringhe vanno prima delle sottostringhe in modo che la matrioska non venga prematuramente interrotta.
Esempi
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? In base alla regola 3, entrambi abe badovrebbero entrare aba, e in base alla regola 4, banon possono andare in abao bab.