在西班牙,当前的车牌具有以下模式:
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
。 - 西班牙辅音与英语完全相同,但加了“Ñ”。元音与重读元音的附加词相同:“áéíóúü”。不会有其他类型的标记,例如“-”或“'”。
- 您可以假设单词列表和三个辅音的大小写始终相同。
如果要使用西班牙语单词的真实集合来测试算法,则可以从Dropbox下载一百万个单词以上的文件(15.9 MB)。
测试用例
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'
这是代码高尔夫,所以最短的程序可以帮助我永远击败我的妻子。:)