Tulis program atau fungsi yang memberikan beberapa teks, sejumlah kolom, dan lebar kolom, memformat teks menjadi kolom. Ini tipografi teks biasa .
Aturan
Memasukkan
- Teks akan menjadi string ASCII yang dapat dicetak dan mungkin berisi baris baru dan spasi (tetapi tidak tab).
- Jumlah kolom akan menjadi bilangan bulat positif.
- Lebar kolom adalah bilangan bulat yang lebih besar atau sama dengan 2 yang menentukan jumlah karakter per kolom.
Untuk tantangan ini, sebuah kata akan terdiri dari karakter non-spasi putih. Input terdiri dari satu string dan dua bilangan bulat, yang dapat diambil dalam urutan apa pun.
Keluaran
Output adalah teks yang diformat menjadi kolom seimbang dengan jumlah kata pada setiap baris yang sesuai.
- Jika sebuah kata terlalu panjang untuk dimasukkan ke dalam kolom, letakkan kata tersebut di baris berikutnya jika ada kata lain di baris saat ini dan garis tersebut bisa diisi dengan lebar kolom dengan tiga spasi atau kurang.
- Jika tidak, beri tanda penghubung pada kata sehingga mengisi seluruh baris. Tanda hubung di mana pun garis berakhir; jangan khawatir tentang tanda hubung di antara suku kata.
- Kolom harus dipisahkan dengan margin empat karakter spasi.
- Kolom harus seimbang sehingga semuanya memiliki jumlah garis yang sama jika memungkinkan.
- Kolom paling kiri harus memiliki garis tambahan jika perlu.
- Setiap jeda baris dan beberapa ruang harus dipertahankan. Ruang tambahan adalah opsional setelah kolom terakhir.
Contohnya
Teks:
The number of columns will be a positive integer. Columns should be separated by a margin of four space characters.
The columns should be balanced. The column width is greater than two.
Kolom: 3, lebar: 10
The number separated ns should
of columns by a marg- be balanc-
will be a in of four ed. The
positive space cha- column wi-
integer. racters. dth is gr-
Columns eater than
should be The colum- two.
Teks:
This line is hyphenated.
This line, on the other hand, is not.
Kolom: 1, lebar: 20
This line is hyphen-
ated.
This line, on the
other hand, is not.
Teks: Tiny columns.
kolom: 4, lebar: 2
T- c- u- s.
i- o- m-
ny l- n-
Teks: Two spaces.<space>
kolom: 5, lebar: 2
T- p- c- s.
wo s- a- e-
Teks: <newline>A phrase
kolom: 2, lebar: 5
rase
A ph-
Teks: A short sentence.
kolom: 10, lebar: 5
A sh- ort sent- ence.
Teks: It's "no word" 1234567890 -+-+-+-+ (*&!)
kolom: 3, lebar: 6
It's 12345- +-+
"no 67890 (*&!)
word" -+-+--
Ini adalah kode-golf ; aturan standar berlaku.
s:'tiny', c:4, w:2
= t- i- n- y
atau t- i- ny
??
t- i- ny
. Apakah semuanya sekarang, atau apakah saya harus memperbaikinya lagi?
tiny s
menjadi t- i- n- y_ s
ataut- i- ny s