template задаёт множество слов из строчных латинских букв по таким правилам:
- одна буква задаёт множество из одного слова: "q" → {q};
- фигурные скобки с одним или несколькими шаблонами через запятую задают объединение их множеств: "{a,bc,a}" → {a, bc};
- шаблоны, записанные подряд, задают все склейки: первое слово берётся из множества первого шаблона, второе — из множества второго. Например, "{a,b}{c,d}" → {ac, ad, bc, bd}, а "m{e,a}t" → {met, mat}.
Правила можно вкладывать друг в друга сколько угодно глубоко.
Верните все различные слова, которые задаёт шаблон, в лексикографическом порядке.template="{x,yz}{a,b}" → ['xa', 'xb', 'yza', 'yzb']Каждое слово первой группы склеиваем с каждым словом второй: xa, xb, yza, yzb.
template="k{o,{o,i}t}" → ['kit', 'ko', 'kot']Внутренняя группа даёт «ot» и «it», вместе с «o» получаем ko, kot, kit.
template="{a,b,a}" → ['a', 'b']Повторы в ответ попадают один раз.
len(template) ≤ 60template состоит из {, }, , и строчных латинских буквtemplate корректен по правилам вышеtemplate="{x,yz}{a,b}"['xa', 'xb', 'yza', 'yzb']
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 92 теста на сервере, включая скрытые.