Фон
Матрешка (или русская матрешка) представляет собой набор кукол , которые подходят друг в друге. Я случайно перепутал свою коллекцию матрешек, и я не помню, какая из них идет внутрь.
Задача
Учитывая список уникальных строк, рассортируйте их по вложенным матрешкам. Каждая строка - это отдельная кукла, а матрешка - это список струн.
правила
Позвольте min(a,b)
быть лексикографическим мин строк a
и b
. Позвольте a ⊂ b
обозначить, что a
является подстрокой b
. Потом,
- Список матрешек должен быть отсортирован лексикографически
- Строка
a
может вписаться в строку,b
еслиa ⊂ b
- Если
a ⊂ b
иa ⊂ c
, тоa
пойдем внутрьmin(b,c)
- Если оба
a ⊂ c
иb ⊂ c
, ноa ⊄ b
b ⊄ a
, то толькоmin(a,b)
пойдут внутрьc
- Если и то,
a ⊂ c
и тоb ⊂ c
, а то иa ⊂ b
то, толькоb
пойдет внутрьc
. Т.е. суперструны идут перед подстроками, так что матрешка не заканчивается преждевременно.
Примеры
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
? В соответствии с правилом 3, какab
иba
должно идти вaba
, и в соответствии с правилом 4,ba
не может идти ни в однуaba
илиbab
.Ответы:
Python 2 , 298 байт
Попробуйте онлайн!
-28 байт с советами от @dylnan, поиск ошибок от @Dennis и исправление ошибок от @ Mr.Xcoder
источник
i
в лямбда-функцию и изменил имя переменнойout
наo
.out
переменная никогда не меняется. Попробуйте онлайн!out
имя переменной с 3 символами ... Серьезно: P?