To pytanie jest oparte na pytaniu, które zadałem w języku hiszpańskim . Tak, poprosiłem o algorytm w języku hiszpańskim. :)
W Hiszpanii obecne tablice rejestracyjne mają następujący wzór:
1234 XYZ
gdzie XYZ to trzy spółgłosek zaczerpnięte z pełnego zestawu spółgłosek hiszpańskich (chyba, że „the”).
Czasami podczas podróży z żoną gramy w grę. Kiedy widzimy tablicę rejestracyjną, bierzemy jej trzy spółgłosek i próbujemy utworzyć słowo, które zawiera te trzy spółgłoski, występujące w tej samej kolejności, co na tablicy rejestracyjnej. Przykłady (w języku hiszpańskim):
BCD
BoCaDo (valid)
CaBezaDa (not valid)
FTL
FaTaL (valid)
FLeTar (not valid)
FTR
FleTaR (valid, wins)
caFeTeRa (valid, loses)
Zwycięzcą jest ten, który używa najmniejszej liczby znaków, jak widać w ostatnim przykładzie.
Wyzwanie
Napisz najkrótszy program lub funkcję, która otrzyma listę słów i zestaw trzech spółgłosek i znajdzie najkrótsze słowo na liście zawierającej trzy spółgłosek w tej samej kolejności. Dla celów tej gry wielkość liter nie ma znaczenia.
- Dane wejściowe dla listy słów (pierwszy parametr) będą tablicą typu twojego języka
string
. Drugi parametr (trzy spółgłosek) będzie innystring
. Jeśli jest to lepsze dla twojego języka, rozważstring
z trzema spółgłosek ostatnią pozycję z całej listy parametrów. Wyjście będzie innestring
. - Słowa z listy słów nie zostaną wymyślone ani nieskończone, będą to słowa występujące w dowolnym standardowym słowniku. Jeśli potrzebujesz limitu, przypuśćmy, że żadne słowo na liście słów nie będzie dłuższe niż 50 znaków.
- Jeśli istnieje kilka słów o tej samej długości, które mogą być prawidłową odpowiedzią, możesz zwrócić dowolne z nich. Upewnij się, że zwrócisz tylko jedno słowo lub pusty ciąg, jeśli żadne słowa nie pasują do wzoru trzech spółgłosek.
- Możesz powtarzać spółgłoski w grupie, więc poprawnymi danymi dla trzech spółgłosek są zarówno
FLR
iGGG
. - Spółgłoski hiszpańskie są dokładnie takie same jak angielskie, z dodatkiem „Ñ”. Samogłoski są takie same jak w przypadku samogłosek akcentowanych: „áéíóúü”. Nie będzie żadnych innych znaków, takich jak „-” lub „”.
- Możesz przypuszczać, że wielkość liter będzie zawsze taka sama zarówno na liście słów, jak i trzech spółgłosek.
Jeśli chcesz przetestować algorytm z prawdziwą kolekcją hiszpańskich słów, możesz pobrać plik (15,9 MB) z Dropbox zawierający ponad milion słów.
Przypadki testowe
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'
To jest golf golfowy , więc niech wygra najkrótszy program, który pomoże mi zawsze pokonać żonę! :)