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żstringz 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
FLRiGGG. - 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ę! :)