Bir pangram her harfi içeren bir dizedir a
- z
İngilizce alfabe, küçük harf duyarsız ait. (Pangram bir harfin birden fazla kopyasını içeriyorsa veya harflere ek olarak harf olmayan karakterler içeriyorsa sorun yoktur.)
Girdi dizelerin bir listesi olan ve aşağıdaki özelliklere sahip bir veya daha fazla dizeyi çıkaran bir program veya işlev yazın:
- Her çıkış dizesi bir pangram olmalıdır.
- Her çıkış dizesi, giriş listesinden boşluklarla ayrılmış bir veya daha fazla dizeyi birleştirerek oluşturulmalıdır.
- Her çıkış dizgisi, bu özelliklere sahip tüm dizeler arasında en kısa veya en kısa için bağlı olmalıdır.
Birçok program yalnızca bir dize çıkarmayı seçecektir; çıktıyı sınırlamak için ek kod yazmak zorunda kalırsanız yalnızca birden fazla dize çıktısını almak istersiniz.
Girdinin yazdırılamaz karakterler veya boşluklar içermediğini ve içindeki hiçbir sözcüğün karakter uzunluğundan (liste uzunluğunun doğal logaritmasının 26 katı) uzun olduğunu varsayabilirsiniz. (Ancak, girdinin harflerden veya yalnızca küçük harflerden başka bir şey içermediğini varsayamazsınız; noktalama işaretleri ve büyük harfler tamamen mümkündür.)
Giriş ve çıkış herhangi bir makul formatta verilebilir. Programınızı test etmek için, iki test vakası kullanmanızı öneririm: İngilizce kelimelerin sözlüğü (çoğu bilgisayarda bir tane vardır) ve aşağıdaki durum (bunun için mükemmel (26 harfli) bir pangramın imkansız olduğu için bir tane bulmanız gerekir yinelenen harfler içeren):
abcdefghi
defghijkl
ijklmnop
lmnopqrs
opqrstuvw
rstuvwxyz
Programınızın çıktısının bir örneğini gönderiminize dahil etmelisiniz. (Bu, farklı kelime listeleri kullanmanın bir sonucu olarak farklı insanlar için farklı olabilir.)
Zafer koşulu
Bu kısıtlı karmaşıklıkta bir kod-golf meydan okumadır. Kazanan, polinom zamanında çalışan en kısa programdır (bayt cinsinden) . (Bunun ne anlama geldiğini bilmeyen insanlar için bir özet: kelime listesinin boyutunu iki katına çıkarırsanız, program sabit bir faktörden daha yavaş olmamalıdır. Ancak, söz konusu sabit faktör sizin kadar büyük olabilir Örneğin, dört kat daha yavaş veya sekiz kat daha yavaş olması geçerlidir, ancak kelime listesinin uzunluğuna göre daha küçük olması için geçerli değildir; yavaşlama faktörü sınırlanmalıdır.)