Цей виклик складається з двох частин. Переможцем стане рішення з найменшим загальним числом байтів. Для обох викликів слід використовувати однакову мову.
Частина 1:
Напишіть функцію або програму, яка приймає речення з лише дійсними словами як вхідні та виводить список використаних символів, кількість разів вживання кожної літери та кількість літер у кожному з слів у вихідному реченні. Вихід з цієї програми повинен бути дійсним входом до наступної програми (саме так, як вона виводиться)
Додаю приклади та детальні правила далі.
Частина 2:
Напишіть функцію або програму, яка сприймає вихідні дані з першої програми як вхідні та використовує цей список англійських слів і відтворює речення з інформацією з виводу. Речення не повинно бути таким же, як вихідне.
Більше інформації. правила та обмеження:
Частина 1:
- Перший вхід може бути у будь-якому відповідному форматі, з лапками чи без, як аргумент функції або від STDIN, з дужками або без.
- Вхідне речення не буде містити розділових знаків або спеціальних символів, крім періоду / крапки в кінці. За винятком символу періоду, всі символи, які знаходяться на вводі, будуть у списку слів.
- Перша літера речення буде з великої літери, решта - з малої літери.
- Вихід частини 2 повинен починатися з тієї самої верхньої літери, що і вихідне речення (тому перетворення введення в малі регістри не рекомендується (але добре).
- Вихід може бути у будь-якому відповідному форматі:
- Повинно бути можливість копіювати та вставляти вихід безпосередньо в наступну програму / функцію
- Жодних змін не можна робити при вставці копій, весь вихід повинен бути скопійований і вставлений як ціле, а не по частинах.
- Наприклад, ви можете вивести гістограму всіх букв в алфавіті або лише тих, що використовуються (загалом, все, що потрібно для заповнення частини 2)
- Не можна виводити список символів, де повторюються декілька подій. Наприклад,
The queueне може дати вихід:Teeehquu (3,5)він повинен бути що - щось на кшталт:Tehqu, (1 3 1 1 2),(3 5).
Частина 2:
- Програма / функція повинна приймати введення точно так само, як і в частині 1 (один виняток, див. Коментар нижче щодо прийому імені файлу як вхідного).
- Якщо навколишні дужки, лапки або подібні потрібні для розбору вхідних даних, вони повинні бути частиною виводу з частини 1.
- Список слів можна знайти тут.
- Список слів можна зберегти як локальний
w.txt, або його можна отримати з URL-адреси. URL буде рахувати лише 5 байт, тож вам не потрібен URL-скорочувач. - Якщо програма не може відкрити файл , не читаючи ім'я в якості вхідних даних з STDIN (я вважаю , що це
єі в разі Pyth , по крайней мере), то ім'я файлу може бути прийнято в якості окремого вхідного аргументу.
- Список слів можна зберегти як локальний
- Результатом повинно бути лише речення (список дійсних слів), що закінчується періодом та необов'язковим новим рядком.
- У висновку повинні бути слова з тією ж кількістю літер, що і вихідне речення в частині 1 (у правильному порядку)
- Усі букви, які були використані в початковому реченні, повинні бути використані в новому висновку.
- Речення повинно починатися з тієї самої верхньої літери, що і початкове вхідне речення, і закінчуватися крапкою.
Обидві частини:
- Жодна з частин не повинна зайняти більше 2 хвилин на виконання (випадкове підбирання слів, поки не буде досягнуто рішення, не приймається).
Із переліченими вище правилами має бути великий шанс, що буде відтворено саме те саме речення, однак це не є вимогою.
Приклади:
У наведених нижче прикладах показано кілька різних форматів вводу та виводу. Багато інших прийнято.
Частина 1:
Вхід:
Zulus win.
Тип виходу 1:
Z i l n s u w
1 1 1 1 1 2 1
5 3
Тип виходу 2:
(('Z',1),('i',1),('l',1),('n',1),('s',1),('u',2),('w',1)), (5,2)
Тип виходу 3:
'Zilnsuuw',[1,1,1,1,1,2,1],[5,2]
Частина 2:
Введення: Точна копія виводу з частини 1. Вихід:
Zulus win.
Зауважте, що інші комбінації слів приймаються до тих пір, поки вони починаються з а Z, а перше слово має 5 літер, а друге - 3.
Виграє найкоротший код у байтах.
f1цього вкладеного продукту f2повинен містити всі дані, вказані в виклику. Жодні додаткові дані не можуть бути частиною результатів f1. Жодні дані не можуть бути "збережені", щоб f1зробити інформацію доступною під час її виклику f2. f1може приймати лише один рядок як вхід на дзвінок
