Latar Belakang
Sebuah Matryoshka (atau boneka bersarang Rusia) adalah satu set boneka yang muat di dalam satu sama lain. Saya tidak sengaja mencampurkan koleksi boneka matryoshka saya dan saya tidak ingat yang mana yang ada di dalamnya.
Objektif
Diberikan daftar string yang unik , mengurutkannya menjadi boneka matryoshka bersarang. Setiap string adalah boneka individu, dan boneka matryoshka adalah daftar string.
Aturan
Membiarkan min(a,b)
menjadi min lexicographic string a
dan b
. Biarkan a ⊂ b
menyatakan itu a
adalah substring dari b
. Kemudian,
- Daftar boneka matryoshka harus diurutkan secara leksikografis
- String
a
dapat masuk ke stringb
jikaa ⊂ b
- Jika
a ⊂ b
dana ⊂ c
, makaa
akan masuk ke dalammin(b,c)
- Jika keduanya
a ⊂ c
danb ⊂ c
, tetapia ⊄ b
b ⊄ a
, maka hanyamin(a,b)
akan masuk ke dalamc
- Jika keduanya
a ⊂ c
danb ⊂ c
, dan jugaa ⊂ b
, maka hanyab
akan masukc
. Yaitu, superstring berjalan sebelum substring sehingga matryoshka tidak dihentikan sebelum waktunya.
Contohnya
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
? Dengan aturan 3, keduanyaab
danba
harus masukaba
, dan dengan aturan 4,ba
tidak bisa masuk ke salah satuaba
ataubab
.Jawaban:
Python 2 , 298 byte
Cobalah online!
-28 byte dengan tips dari @dylnan, bug find by @Dennis, dan bug fix oleh @ Mr.Xcoder
sumber
i
menjadi fungsi lambda dan mengubah nama variabelout
menjadio
.out
variabel tidak pernah berubah. Cobalah online!out
nama variabel 3-char ... Serius: P?