Панграмма является строкой , которая содержит все буквы a
- z
от английского алфавита, не чувствительны к регистру. (Это нормально, если панграмма содержит более одной копии буквы или если она содержит не буквенные символы в дополнение к буквам.)
Напишите программу или функцию, чьи входные данные представляют собой список строк и которые выводят одну или несколько строк, которые имеют следующие свойства:
- Каждая выходная строка должна быть панграммой.
- Каждая выходная строка должна быть сформирована путем объединения одной или нескольких строк из списка ввода, разделенных пробелами.
- Каждая выходная строка должна быть самой короткой или привязанной к самой короткой из всех строк с этими свойствами.
Многие программы выберут вывод только одной строки; вы бы хотели вывести более одной строки, если бы вам пришлось написать дополнительный код для ограничения вывода.
Вы можете предположить, что входные данные не содержат непечатаемых символов или пробелов и что ни одно слово в нем не превышает (в 26 раз больше натурального логарифма длины списка) символов. (Однако вы не можете предполагать, что ввод содержит только буквы или только строчные буквы; знаки препинания и заглавные буквы вполне возможны.)
Ввод и вывод может быть дан в любом разумном формате. Для тестирования вашей программы я рекомендую использовать два контрольных примера: словарь английских слов (у большинства компьютеров есть один) и следующий случай (для которого идеальная (26-буквенная) панграмма невозможна, поэтому вам придется найти один содержащие повторяющиеся буквы):
abcdefghi
defghijkl
ijklmnop
lmnopqrs
opqrstuvw
rstuvwxyz
Вы должны включить образец результатов вашей программы вместе с вашим представлением. (Это может отличаться для разных людей в результате использования разных списков слов.)
Состояние победы
Это код-гольф ограниченной сложности сложная задача . Победителем является самая короткая программа (в байтах), которая выполняется за полиномиальное время . (Резюме для людей, которые не знают, что это значит: если вы удвоите размер списка слов, программа должна стать медленнее не более чем на постоянный фактор. Однако рассматриваемый постоянный фактор может быть таким же большим, как вы Например, допустимо, чтобы он становился в четыре раза медленнее или в восемь раз медленнее, но не для того, чтобы он становился меньше в зависимости от длины списка слов; фактор, из-за которого он становится медленнее, должен быть ограничен.)