Этот вопрос основан на вопросе, который я задал на испанском языке . Да, я попросил алгоритм на испанском языке. :)
В Испании нынешние номерные знаки имеют такую схему:
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'
Это код-гольф , поэтому, может быть, победит самая короткая программа, которая всегда побеждает мою жену! :)