Cette question est basée sur une question que j'ai posée en langue espagnole . Oui, j'ai demandé un algorithme en espagnol. :)
En Espagne, les plaques d'immatriculation actuelles ont ce modèle:
1234 XYZ
où XYZ sont trois consonnes tirées de l'ensemble complet des consonnes espagnoles (sauf le 'Ñ', je pense).
Parfois, lorsque je voyage avec ma femme, nous jouons à un jeu. Lorsque nous voyons une plaque d'immatriculation, nous prenons ses trois consonnes et essayons de former un mot qui contient ces trois consonnes, apparaissant dans le même ordre que dans la plaque d'immatriculation. Exemples (en espagnol):
BCD
BoCaDo (valid)
CaBezaDa (not valid)
FTL
FaTaL (valid)
FLeTar (not valid)
FTR
FleTaR (valid, wins)
caFeTeRa (valid, loses)
Le gagnant est celui qui utilise le moins de caractères, comme vous pouvez le voir dans le dernier exemple.
Le défi
Écrivez le programme ou la fonction la plus courte qui reçoit une liste de mots et un ensemble de trois consonnes et trouve le mot le plus court dans la liste qui contient les trois consonnes dans le même ordre. Aux fins de ce jeu, le cas n'a pas d'importance.
- L'entrée pour la liste de mots (premier paramètre) sera un tableau de votre
string
type de langue . Le deuxième paramètre (les trois consonnes) en sera un autrestring
. Si c'est mieux pour votre langue, considérezstring
avec les trois consonnes le dernier élément de toute la liste des paramètres. La sortie en sera une autrestring
. - Les mots de la liste de mots ne seront pas inventés ou des mots infinis, ils seront des mots qui apparaissent dans n'importe quel dictionnaire standard. Si vous avez besoin d'une limite, supposez qu'aucun mot de la liste de mots ne dépasse 50 caractères.
- S'il y a plusieurs mots de même longueur qui pourraient être la réponse valide, vous pouvez renvoyer l'un d'eux. Assurez-vous de ne renvoyer qu'un seul mot ou une chaîne vide si aucun mot ne correspond au modèle de trois consonnes.
- Vous pouvez répéter les consonnes dans le groupe, donc les entrées valides pour les trois consonnes sont à la fois
FLR
etGGG
. - Les consonnes espagnoles sont exactement les mêmes que l'anglais, avec l'ajout du "Ñ". Les voyelles sont les mêmes avec l'adition des voyelles accentuées: "áéíóúü". Il n'y aura aucun autre type de marque comme "-" ou "'".
- Vous pouvez supposer que le cas sera toujours le même dans la liste de mots et dans les trois consonnes.
Si vous souhaitez tester votre algorithme avec une véritable collection de mots espagnols, vous pouvez télécharger un fichier (15,9 Mo) depuis Dropbox avec plus d'un million de mots.
Cas de test
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'
C'est du golf de code , alors le programme le plus court qui m'aide à toujours battre ma femme gagne! :)