Ось один для всіх ви, словотворців, там! Напишіть програму або функцію, яка містить список слів і створює список усіх можливих сполучних розкладів для кожного слова. Наприклад:
(Примітка. Це лише невеликий вибірки для ілюстративних цілей. Фактичний результат набагато об’ємніший.)
afterglow = after + glow
afterglow = aft + erg + low
alienation = a + lie + nation
alienation = a + lien + at + i + on
alienation = a + lien + at + ion
alienation = alien + at + i + on
alienation = alien + at + ion
archer = arc + her
assassinate = ass + as + sin + ate
assassinate = ass + ass + in + ate
assassinate = assassin + ate
backpedalled = back + pedal + led
backpedalled = back + pedalled
backpedalled = backpedal + led
goatskin = go + at + skin
goatskin = goat + skin
goatskin = goats + kin
hospitable = ho + spit + able
temporally = tempo + rally
windowed = win + do + wed
windowed = wind + owed
weatherproof = we + at + her + pro + of
yeasty = ye + a + sty
Гаразд, ви зрозуміли ідею. :-)
Правила
- Використовуйте будь-яку мову програмування на ваш вибір. Найкоротший код за кількістю символів для кожної мови виграє. Це означає, що для кожної мови використовується один переможець. Загальним переможцем буде просто найкоротший код з усіх поданих.
- Список вводу може бути текстовим файлом, стандартним введенням або будь-якою структурою списку, яку надає ваша мова (список, масив, словник, набір тощо). Слова можуть бути англійською або будь-якою іншою природною мовою. (Якщо в списку є англійські слова, ви хочете ігнорувати або попередньо відфільтрувати однолітерні елементи, за винятком "a" та "i". Так само, як і для інших мов, ви хочете ігнорувати безглузді елементи, якщо вони відображаються у файлі.)
- Список вихідних даних може бути текстовим файлом, стандартним висновком або будь-якою структурою списку, якою використовується ваша мова.
- Ви можете використовувати будь-який вхідний словник, який вам подобається, але, ймовірно, ви хочете використовувати той, який забезпечує розважливі слова, а не той, який надає занадто багато незрозумілих, прихованих або необмежених слів. Цей файл, який я використав: Кукурудзяний список із понад 58000 англійських слів
Запитання
Це завдання полягає насамперед у написанні коду для виконання завдання, але також цікаво прочесати результати ...
- Які підслови зустрічаються найчастіше?
- Яке слово можна розкласти на найбільшу кількість підслов?
- Яке слово можна розкласти самими різними способами?
- Які слова складаються з найбільших підслів?
- Які розклади ви виявили найбільш цікавими?
alienation
коли вирізав і вставив це. Виправлено зараз. Щодо інших, перелік, наведений вище, є лише невеликою вибіркою. Моя програма тестування отримала десятки тисяч відповідей, коли мені дали список кукурудзи.