Bu soru dayanmaktadır ben sorulan bir soru içinde İspanyolcaya . Evet, İspanyolca dilinde bir algoritma istedim. :)
İspanya'da, mevcut plakalar şu şekle sahiptir:
1234 XYZ
XYZ, İspanyol ünsüzlerin tam setinden alınan üç ünsüzdür ('Ñ' hariç).
Bazen karımla seyahat ederken bir oyun oynarız. Bir plakayı gördüğümüzde, üç ünsüzünü alırız ve bu üç ünsüzünü içeren bir sözcük oluşturmaya çalışırız, aynı plakada göründüğü gibi. Örnekler (İspanyolca):
BCD
BoCaDo (valid)
CaBezaDa (not valid)
FTL
FaTaL (valid)
FLeTar (not valid)
FTR
FleTaR (valid, wins)
caFeTeRa (valid, loses)
Kazanan, son örnekte görebileceğiniz gibi, en az karakter kullanan kişidir.
Meydan okuma
Bir kelime listesi ve üç ünsüz kümesi içeren en kısa programı veya işlevi yazın ve en kısa sözcüğü aynı sırada üç ünsüzü içeren listede bulur. Bu oyunun amaçları için durum önemli değil.
- Sözcük listesi için giriş (ilk parametre) dil
string
türünüzün bir dizisi olacaktır . İkinci parametre (üç ünsüz) başka olacakstring
. Diliniz için daha iyiysestring
, üç ünsüz ile tüm parametre listesinin son öğesini göz önünde bulundurun . Çıktı başka olacakstring
. - Kelime listesindeki kelimeler icat edilmeyecek veya sonsuz kelimeler olacak, herhangi bir standart sözlükte görünen kelimeler olacaktır. Bir sınıra ihtiyacınız varsa, kelime listesindeki hiçbir kelimenin 50 karakterden uzun olmayacağını varsayalım.
- Aynı uzunluğa sahip, geçerli cevap olabilecek birkaç kelime varsa, bunlardan herhangi birini geri verebilirsiniz. Üç ünsüzün deseni eşleşmiyorsa, sadece bir kelime veya boş bir dize döndürdüğünüzden emin olun.
- Üç ünsüzler için geçerli girdiler hem böylece, gruptaki ünsüzleri tekrarlayabilirsiniz
FLR
veGGG
. - İspanyol ünsüzleri "Ñ" eklenmesiyle İngilizceyle tamamen aynıdır. Ünlüler, vurgulanan ünlülerin eklenmesiyle aynıdır: "áéíóúü". "-" veya "" "gibi başka bir işaret olmayacak.
- Davanın hem kelime listesinde hem de üç ünsüzde aynı olacağını varsayalım.
Algoritmanızı gerçek bir İspanyolca sözcük koleksiyonu ile test etmek istiyorsanız, bir dosyayı (15.9 MB) Dropbox'tan bir milyondan fazla sözcükle indirebilirsiniz .
Test durumları
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'
Bu kod golf , bu yüzden her zaman karımı yenmek için bana yardımcı olan en kısa program kazanır! :)