Tantangan ini terdiri dari dua bagian. Pemenang akan menjadi solusi dengan jumlah byte total terendah. Bahasa yang sama harus digunakan untuk kedua tantangan.
Bagian 1:
Tulis fungsi atau program yang mengambil kalimat dengan hanya kata - kata yang valid sebagai input, dan menampilkan daftar karakter yang digunakan, berapa kali setiap huruf digunakan, dan jumlah huruf di setiap kata dalam kalimat asli. Output dari program ini harus merupakan input yang valid ke program berikutnya (persis seperti yang dikeluarkan)
Saya akan menambahkan contoh dan aturan rinci lebih jauh ke bawah.
Bagian 2:
Tulis fungsi atau program yang mengambil output dari program pertama sebagai input dan menggunakan daftar kata - kata bahasa Inggris ini dan membuat ulang kalimat dengan informasi dari output. Kalimat tidak harus sama dengan kalimat aslinya.
Informasi lebih lanjut aturan dan batasan:
Bagian 1:
- Input pertama dapat berupa format yang sesuai, dengan atau tanpa tanda kutip, sebagai argumen fungsi atau dari STDIN, dengan atau tanpa tanda kurung dll.
- Kalimat input tidak akan berisi tanda baca atau karakter khusus, kecuali titik / titik pada akhirnya. Kecuali untuk simbol periode, semua karakter yang ada dalam input akan ada dalam daftar kata.
- Huruf pertama dari kalimat akan menjadi huruf besar, sisanya akan menjadi huruf kecil.
- Keluaran dari bagian 2 harus dimulai dengan huruf besar yang sama dengan kalimat asli (jadi mengonversi input ke huruf kecil tidak dianjurkan (tapi OK).
- Outputnya bisa dalam format apa saja yang sesuai:
- Harus dimungkinkan untuk menyalin-menempelkan output langsung ke program / fungsi berikutnya
- Tidak ada perubahan yang dapat dilakukan saat copy-paste, seluruh output harus disalin dan ditempelkan secara keseluruhan, bukan sebagian.
- Misalnya, Anda dapat menampilkan histogram dari semua huruf dalam alfabet, atau hanya huruf yang digunakan (secara umum, apa pun yang diperlukan untuk menyelesaikan bagian 2)
- Anda tidak dapat menampilkan daftar karakter di mana beberapa kejadian berulang. Misalnya,
The queue
tidak dapat menghasilkan output:Teeehquu (3,5)
, itu harus sesuatu seperti:Tehqu, (1 3 1 1 2),(3 5)
.
Bagian 2:
- Program / fungsi harus menerima input persis seperti dari bagian 1 (satu pengecualian, lihat komentar di bawah tentang mengambil nama file sebagai input.).
- Jika tanda kurung di sekelilingnya, tanda kutip atau yang serupa diperlukan untuk mengurai input maka ini harus menjadi bagian dari output dari bagian 1.
- Daftar kata dapat ditemukan di sini.
- Daftar kata dapat disimpan secara lokal sebagai
w.txt
, atau dapat diambil dari url. Url hanya akan dihitung sebagai 5 byte, jadi Anda tidak perlu pemendek-url. - Jika program tidak dapat membuka file tanpa membaca nama sebagai input dari STDIN (saya percaya ini
adalahkasus untuk Pyth setidaknya), maka nama file dapat diambil sebagai argumen input yang terpisah.
- Daftar kata dapat disimpan secara lokal sebagai
- Output harus hanya berupa kalimat (daftar kata yang valid), diakhiri dengan titik dan baris opsional.
- Output harus memiliki kata-kata dengan jumlah huruf yang sama dengan kalimat asli di bagian 1 (dalam urutan yang benar)
- Semua huruf yang digunakan dalam kalimat asli harus digunakan dalam output baru.
- Kalimat harus dimulai dengan huruf besar sama dengan kalimat input asli dan diakhiri dengan tanda titik.
Kedua bagian:
- Tidak satu pun dari bagian-bagian itu harus memakan waktu lebih dari 2 menit untuk dieksekusi (memilih secara acak kata-kata sampai solusi tercapai tidak diterima).
Dengan aturan yang tercantum di atas, harus ada peluang yang adil bahwa kalimat yang sama persis direproduksi, namun itu bukan persyaratan.
Contoh:
Dalam contoh di bawah ini, beberapa format input dan output yang berbeda ditampilkan. Banyak lagi yang diterima.
Bagian 1:
Memasukkan:
Zulus win.
Tipe output 1:
Z i l n s u w
1 1 1 1 1 2 1
5 3
Tipe output 2:
(('Z',1),('i',1),('l',1),('n',1),('s',1),('u',2),('w',1)), (5,2)
Tipe output 3:
'Zilnsuuw',[1,1,1,1,1,2,1],[5,2]
Bagian 2:
Input: Salinan persis dari output dari bagian 1. Output:
Zulus win.
Perhatikan bahwa kombinasi kata lain diterima selama mereka mulai dengan a Z
, dan kata pertama memiliki 5 huruf dan yang kedua memiliki 3.
Kode terpendek dalam byte menang.
f1
yang disisipkan ke f2
harus berisi semua data yang ditentukan dalam tantangan. Tidak ada data tambahan yang dapat menjadi bagian dari output dari f1
. Tidak ada data yang dapat "disimpan" dalam f1
membuat informasi tersedia saat memanggilnya f2
. f1
hanya dapat mengambil satu string sebagai input per panggilan.