Bu zorluk iki bölümden oluşmaktadır. Kazanan, en düşük toplam bayt sayısına sahip çözüm olacaktır. Her iki zorluk için de aynı dil kullanılmalıdır.
Bölüm 1:
Girdi olarak yalnızca geçerli sözcükleri içeren bir cümle alan ve kullanılan karakterlerin bir listesini, her harfin kaç kez kullanıldığını ve orijinal cümledeki kelimelerin her birindeki harf sayısını çıkaran bir işlev veya program yazın . Bu programdan alınan çıktı bir sonraki programa geçerli olarak girilmelidir (tam olarak çıktılandığı gibi)
Daha ayrıntılı örnekler ve ayrıntılı kurallar ekleyeceğim.
Bölüm 2:
İlk programdan çıktıyı girdi olarak alan ve bu İngilizce kelime listesini kullanan ve çıktıdaki bilgilerle bir cümleyi yeniden yaratan bir işlev veya program yazın . Cümlenin orijinal cümle ile aynı olması gerekmez.
Daha fazla bilgi. kurallar ve kısıtlamalar:
Bölüm 1:
- İlk giriş, tırnak işareti ile veya tırnak işareti olmadan, işlev argümanı olarak veya STDIN'den, köşeli ayraçlarla veya köşeli ayraçlar olmadan herhangi bir uygun formatta olabilir.
- Giriş cümlesi, noktadaki nokta / nokta haricinde herhangi bir noktalama işareti veya özel karakter içermez. Nokta sembolü hariç, girişteki tüm karakterler kelime listesinde olacaktır.
- Cümlenin ilk harfi büyük, diğerleri küçük olacak.
- 2. bölümün çıktısı, orijinal cümle ile aynı büyük harfle başlamalıdır (bu nedenle, girdinin küçük harfe dönüştürülmesi önerilmez (ancak Tamam)).
- Çıktı herhangi bir uygun biçimde olabilir:
- Çıktıyı doğrudan bir sonraki programa / işleve kopyalayıp yapıştırmak mümkün olmalıdır
- Kopya yapıştırırken hiçbir değişiklik yapılamaz, tüm çıktı parçalara değil bir bütün olarak kopyalanmalı ve yapıştırılmalıdır.
- Örneğin, alfabedeki tüm harflerin veya yalnızca kullanılan harflerin bir histogramını çıktılayabilirsiniz (genel olarak, 2. bölümü tamamlamak için ne gerekiyorsa)
- Birden çok tekrarlamanın tekrarlandığı bir karakter listesi çıktısı alamazsınız. Örneğin,
The queue
bir sonuç çıktısı verecektir edemez:Teeehquu (3,5)
bu gibi bir şey olmalıdır:Tehqu, (1 3 1 1 2),(3 5)
.
Bölüm 2:
- Program / fonksiyon girişi aynen bölüm 1'deki gibi kabul etmelidir (bir istisna, dosya adının girdi olarak alınmasıyla ilgili aşağıdaki açıklamaya bakınız).
- Girdiyi ayrıştırmak için çevreleyen parantezler, tırnak işaretleri veya benzerleri gerekiyorsa, bunlar bölüm 1'deki çıkışın bir parçası olmalıdır.
- Kelime listesi burada bulunabilir.
- Kelime listesi yerel olarak olarak kaydedilebilir
w.txt
veya url'den getirilebilir. URL yalnızca 5 bayt olarak sayılır, bu nedenle bir URL kısaltıcıya ihtiyacınız yoktur. - Program STDIN'den girdi olarak adını okumadan bir dosyayı açamıyorsanız (Ben şuna inanıyorum
isen az Pyth için böyleydi), sonra dosya ismi ayrı giriş argüman olarak alınabilir.
- Kelime listesi yerel olarak olarak kaydedilebilir
- Çıktı, yalnızca nokta ve isteğe bağlı yeni satırla biten bir cümle (geçerli sözcüklerin listesi) olmalıdır.
- Çıktı, bölüm 1'deki orijinal cümle ile aynı sayıda harf içeren kelimelere sahip olmalıdır (doğru sırada)
- Orijinal cümle içinde kullanılan tüm harfler yeni çıktıda kullanılmalıdır.
- Cümle, orijinal giriş cümlesiyle aynı büyük harfle başlamalı ve nokta ile bitmelidir.
Her iki parça:
- Parçaların hiçbirinin yürütülmesi 2 dakikadan fazla sürmemelidir (bir çözüme ulaşılana kadar kelimeleri rastgele seçmek kabul edilmez).
Yukarıda listelenen kurallarla, aynı cümlenin yeniden üretilmesi için makul bir şans olmalıdır, ancak bu bir gereklilik değildir.
Örnekler:
Aşağıdaki örneklerde, birkaç farklı giriş ve çıkış biçimi gösterilmektedir. Daha fazlası kabul edilir.
Bölüm 1:
Giriş:
Zulus win.
Çıkış tipi 1:
Z i l n s u w
1 1 1 1 1 2 1
5 3
Çıkış tipi 2:
(('Z',1),('i',1),('l',1),('n',1),('s',1),('u',2),('w',1)), (5,2)
Çıkış tipi 3:
'Zilnsuuw',[1,1,1,1,1,2,1],[5,2]
Bölüm 2:
Giriş: 1. bölümdeki çıktının tam bir kopyası.
Zulus win.
Diğer kelime kombinasyonlarının a ile başladıkları sürece kabul edildiğini Z
ve ilk kelimenin 5 harf ve ikincisinin 3 olduğunu unutmayın.
Bayttaki en kısa kod kazanır.
f1
Yapıştırılan çıktı, sorunda f2
belirtilen tüm verileri içermelidir. Hiçbir ek veri, çıktıdan alınamaz f1
. Hiçbir veri, f1
bilgi çağrılırken kullanılabilir hale getirilirken "saklanamaz" f2
. f1
çağrı başına yalnızca bir dize alabilir.