fundo
Uma boneca matryoshka (ou boneca russa) é um conjunto de bonecas que se encaixam umas nas outras. Eu acidentalmente misturei minha coleção de bonecas matryoshka e não me lembro qual delas vai dentro da qual.
Objetivo
Dada uma lista de seqüências únicas , classifique-as em bonecas matryoshka aninhadas. Cada corda é uma boneca individual e uma boneca matryoshka é uma lista de cordas.
Regras
Let min(a,b)
Ser o min lexicográfico de strings a
e b
. Vamos a ⊂ b
denotar que a
é uma subcadeia de b
. Então,
- A lista de bonecas matryoshka deve ser classificada lexicograficamente
- String
a
pode caber em stringb
sea ⊂ b
- Se
a ⊂ b
ea ⊂ c
, então,a
irá para dentromin(b,c)
- Se ambos
a ⊂ c
eb ⊂ c
, masa ⊄ b
b ⊄ a
, apenasmin(a,b)
entrarãoc
- Se ambos
a ⊂ c
eb ⊂ c
, e tambéma ⊂ b
, apenasb
entrarãoc
. Ou seja, as supercordas vão antes das substrings para que o matryoshka não seja prematuramente finalizado.
Exemplos
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
? Pela regra 3, ambosab
eba
devem entraraba
, e pela regra 4,ba
não podem entrar em umaba
ou embab
.Respostas:
Python 2 , 298 bytes
Experimente online!
-28 bytes com dicas de @dylnan, localização de bugs por @Dennis e correção de bugs por @ Mr.Xcoder
fonte
i
em uma função lambda e alterou o nome da variávelout
parao
.out
variável nunca muda. Experimente online!out
nome da variável com 3 caracteres ... Sério: P?