Це питання заснований на питання , який я просив у іспанською мовою . Так, я попросив алгоритм з іспанської мови. :)
В Іспанії поточні номерні знаки мають такий зразок:
1234 XYZ
де XYZ - це три приголосні, взяті з повного набору іспанських приголосних (крім "Ñ", я думаю).
Іноді під час подорожі з дружиною ми використовуємо для гри. Коли ми бачимо номерний знак, ми беремо його три приголосні і намагаємося сформувати слово, яке містить ці три приголосні, і вони відображаються в тому ж порядку, що і в номерному знаку. Приклади (іспанською мовою):
BCD
BoCaDo (valid)
CaBezaDa (not valid)
FTL
FaTaL (valid)
FLeTar (not valid)
FTR
FleTaR (valid, wins)
caFeTeRa (valid, loses)
Перемагає той, хто використовує найменшу кількість символів, як ви бачите в останньому прикладі.
Змагання
Напишіть найкоротшу програму або функцію, яка отримує список слів і набір з трьох приголосних і знайде найкоротше слово у списку, який містить три приголосні в одному порядку. Для цілей цієї гри справа не має значення.
- Введення для списку слів (перший параметр) буде масивом вашого
string
типу мови . Другий параметр (три приголосні) буде іншимstring
. Якщо вам краще для вашої мови, розгляньтеstring
з трьома приголосними останній пункт усього списку параметрів. Вихід буде іншимstring
. - Слова в списку слів не будуть вигаданими або нескінченними словами, вони будуть словами, які відображаються в будь-якому стандартному словнику. Якщо вам потрібна межа, припустімо, що жодне слово у списку слів не перевищує 50 символів.
- Якщо є кілька слів з однаковою довжиною, які могли б бути правильною відповіддю, ви можете повернути будь-яке з них. Просто переконайтеся, що ви повернете лише одне слово або порожній рядок, якщо жодне слово не відповідає шаблону трьох приголосних.
- Ви можете повторювати приголосні в групі, тому дійсні вводи для трьох приголосних є
FLR
іGGG
. - Іспанські приголосні точно такі ж, як і англійські, з додаванням "Ñ". Голосні звуки однакові з приголошенням наголошених голосних: "áéíóúü". Інших типів знаків, таких як "-" або "", не буде.
- Можна припустити, що випадок завжди буде однаковим і в списку слів, і в трьох приголосних.
Якщо ви хочете перевірити свій алгоритм справжньою колекцією іспанських слів, ви можете завантажити файл (15,9 Мб) з Dropbox з більш ніж мільйоном слів.
Тестові справи
Input: 'psr', {'hola' 'repasar' 'pasarais' 'de' 'caída' 'pequeñísimo' 'agüeros'}
Output: 'repasar'
Input: 'dsd', {'dedos' 'deseado' 'desde' 'sedado'}
Output: 'desde'
Input: 'hst', {'hastío' 'chest'}
Output: 'chest'
Це кодовий гольф , тому можливо найкоротша програма, яка допомагає мені завжди перемагати дружину. :)