Панграма є рядком , яка містить всі літери a
- z
від англійського алфавіту, НЕ чутливі до регістру. (Добре, якщо в панграмі міститься більше однієї копії листа або якщо крім букв вони містять небуквені символи.)
Напишіть програму або функцію, вхідною інформацією якої є список рядків і яка виводить одну або кілька рядків, які мають такі властивості:
- Кожен вихідний рядок повинен бути панграмою.
- Кожен вихідний рядок повинен бути сформований об'єднанням одного або декількох рядків зі списку вводу, розділених пробілами.
- Кожен вихідний рядок повинен бути найкоротшим або прив’язаним до найкоротшого, серед усіх рядків із цими властивостями.
Багато програм вирішать вивести лише одну рядок; ви хочете вивести більше однієї струни, лише якщо вам в іншому випадку доведеться написати додатковий код, щоб обмежити вихід.
Ви можете припустити, що в тексті даних немає недрукованих символів або пробілів, і що жодне слово в ньому не перевищує (26 разів більше природного логарифму довжини списку) символів. (Ви, однак, не можете припускати, що введення не містить нічого, крім букв або лише малих літер; розділові знаки та великі літери цілком можливі.)
Введення та вихід можуть бути надані у будь-якому розумному форматі. Для тестування вашої програми я рекомендую використовувати два тестові випадки: словник англійських слів (у більшості комп'ютерів є одне) та наступний випадок (для якого ідеальна (26-літерна) панограма неможлива, тому вам доведеться знайти її що містять дублікати букв):
abcdefghi
defghijkl
ijklmnop
lmnopqrs
opqrstuvw
rstuvwxyz
Ви повинні включити зразок результатів програми разом з поданням. (Це може бути різним для різних людей внаслідок використання різних списків слів.)
Стан перемоги
Це виклик з кодом з обмеженою складністю . Переможець - найкоротша програма (у байтах), яка працює в поліноміальний час . (Підсумок для людей, які не знають, що це означає: якщо подвоїти розмір списку слів, програма повинна стати повільнішою не більше ніж постійний коефіцієнт. Однак постійний фактор, про який йде мова, може бути таким же великим, як і ви Наприклад, допустимо, щоб воно стало в чотири рази повільніше або у вісім разів повільніше, але не для того, щоб воно стало меншим на коефіцієнт довжини списку слів; фактор, через який він стає повільніше, повинен бути обмежений.)