EDIT Saya memodifikasi kata-kata aturan untuk membuat beberapa hal yang implisit lebih eksplisit. Saya juga menambahkan beberapa penekanan untuk menjernihkan beberapa poin kebingungan yang tampak, dan secara eksplisit menentukan opsi untuk membuat program mandiri alih-alih fungsi.
Tujuannya di sini adalah untuk membuat suatu fungsi yang mengambil file teks (atau string) dan memindahkannya sehingga garis menjadi kolom dan sebaliknya.
Contoh:
Saya seorang teks. Ubah posisi saya. Bisakah kamu melakukannya?
Hasil dalam:
ITC ra aan M N sy apo ou ts eed xo tm .ei .t ?
Aturan:
- Anda boleh berasumsi bahwa satu-satunya karakter spasi putih yang digunakan adalah
" "
dan"\n"
dan tidak ada spasi spasi tambahan pada baris apa pun. - Anda dapat berasumsi bahwa file tersebut adalah ASCII. Penanda garis akhir mana yang ingin Anda gunakan terserah Anda (CRLF atau LF). Ini harus bekerja dengan benar pada contoh, tetapi juga harus bekerja pada setiap masukan yang memenuhi asumsi di atas.
- Anda mungkin harus memasukkan spasi (seperti pada contoh) di mana tidak ada untuk menjaga kolom tetap di garis.
- Hasil Anda tidak boleh memiliki spasi spasi di garis mana pun .
- Karakter baris baru terakhir (untuk baris terakhir) adalah opsional.
- Ini harus berupa fungsi atau program yang lengkap. Jika fungsi Anda menerima string, maka itu harus mengembalikan hasilnya sebagai string. Jika menerima nama file, maka Anda mengembalikan nama file tempat Anda menyimpan hasilnya. Anda juga diperbolehkan untuk menulis program lengkap yang menerima input dari STDIN dan mengeluarkan hasil yang benar ke STDOUT; jika Anda melakukan ini, Anda tidak boleh mengeluarkan apa pun ke STDERR.
- Prosedur terpendek menang, tetapi saya akan membatalkan jawaban yang saya suka.
Berdasarkan aturan, output pada contoh adalah panjang 53 atau 52 byte (untuk LF baris baru) tergantung pada apakah baris baru akhir disertakan atau tidak.
Catatan: Ini bukan persyaratan khusus, tetapi jika fungsi Anda, ketika dijalankan dua kali berturut-turut tidak identik dengan aslinya (baris baru terakhir mungkin berbeda, dan setiap baris kosong di akhir file akan dihapus), maka Anda mungkin melanggar salah satu aturan.