Diese Frage basiert auf einer Frage, die ich in spanischer Sprache gestellt habe . Ja, ich habe nach einem Algorithmus in spanischer Sprache gefragt. :)
In Spanien haben aktuelle Kennzeichen dieses Muster:
1234 XYZ
Wobei XYZ drei Konsonanten sind, die aus der Gesamtheit der spanischen Konsonanten stammen (mit Ausnahme des 'Ñ', denke ich).
Wenn ich mit meiner Frau unterwegs bin, spielen wir manchmal ein Spiel. Wenn wir ein Nummernschild sehen, nehmen wir seine drei Konsonanten und versuchen, ein Wort zu bilden, das diese drei Konsonanten enthält und in derselben Reihenfolge wie das Nummernschild erscheint. Beispiele (auf Spanisch):
BCD
BoCaDo (valid)
CaBezaDa (not valid)
FTL
FaTaL (valid)
FLeTar (not valid)
FTR
FleTaR (valid, wins)
caFeTeRa (valid, loses)
Der Gewinner ist derjenige, der die geringste Anzahl von Zeichen verwendet, wie Sie im letzten Beispiel sehen können.
Die Herausforderung
Schreiben Sie das kürzeste Programm oder die kürzeste Funktion, die eine Liste von Wörtern und einen Satz von drei Konsonanten erhält, und finden Sie das kürzeste Wort in der Liste, das die drei Konsonanten in derselben Reihenfolge enthält. Für die Zwecke dieses Spiels spielt der Fall keine Rolle.
- Die Eingabe für die Wortliste (erster Parameter) ist ein Array Ihres
string
Sprachtyps. Der zweite Parameter (die drei Konsonanten) ist ein andererstring
. Wenn es für Ihre Sprache besser ist, betrachten Siestring
mit den drei Konsonanten den letzten Punkt der gesamten Parameterliste. Die Ausgabe wird eine andere seinstring
. - Die Wörter in der Wortliste sind keine erfundenen oder unendlichen Wörter, sondern Wörter, die in einem Standardwörterbuch vorkommen. Wenn Sie eine Beschränkung benötigen, nehmen Sie an, dass kein Wort in der Wortliste länger als 50 Zeichen ist.
- Wenn es mehrere Wörter mit derselben Länge gibt, die die gültige Antwort sein könnten, können Sie eines davon zurückgeben. Stellen Sie einfach sicher, dass Sie nur ein Wort oder eine leere Zeichenfolge zurückgeben, wenn kein Wort mit dem Muster von drei Konsonanten übereinstimmt.
- Sie können Konsonanten in der Gruppe wiederholen, sodass gültige Eingaben für die drei Konsonanten beide
FLR
und sindGGG
. - Die spanischen Konsonanten sind genau die gleichen wie die englischen, mit dem Zusatz "Ñ". Die Vokale sind die gleichen wie bei den betonten Vokalen: "áéíóúü". Es wird keine andere Art von Zeichen wie "-" oder "'" geben.
- Sie können davon ausgehen, dass der Fall sowohl in der Wortliste als auch in den drei Konsonanten immer derselbe ist.
Wenn Sie Ihren Algorithmus mit einer echten Sammlung spanischer Wörter testen möchten, können Sie eine Datei (15,9 MB) mit mehr als einer Million Wörtern von Dropbox herunterladen .
Testfälle
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'
Das ist Code-Golf , also kann das kürzeste Programm, das mir hilft, meine Frau immer zu schlagen, gewinnen! :)