Given a width and a block of
text containing possible hyphen-
ation points, format it fully-
justified (in monospace).
Sepenuhnya dibenarkan berarti selaras di sebelah kiri dan kanan, dan dicapai dengan meningkatkan jarak antara kata-kata sampai setiap baris cocok.
Terkait:
- Ratakan teks dengan menambahkan spasi
- Sejajarkan teks dengan blok
- Dan dengan cara ini dapat dianggap sebagai langkah selanjutnya dalam Pemrosesan Teks # 1: Tanda hubung (yang tampaknya belum pernah diposting).
Memasukkan
Anda dapat mengambil input dalam format apa pun yang Anda suka. Anda akan diberikan:
- Lebar target (dalam karakter), dalam kisaran 5-100 (inklusif);
- Blok teks yang berisi kata-kata yang mungkin ditulis dalam tanda penghubung. Ini bisa berupa string yang dipisahkan spasi, array kata, atau array array fragmen kata (atau representasi data lain yang Anda inginkan).
Input tipikal mungkin:
Width: 25
Text: There's no bu-si-ne-ss lik-e s-h-o-w busine-ss, n-o bus-iness I know.
Di mana tanda hubung menunjukkan poin hyphenation yang mungkin, dan spasi menunjukkan batas kata. Kemungkinan representasi alternatif dari teks:
[["There's"], ["no"], ["bu", "si", "ne", "ss"], ["lik", "e"], (etc.)]
Keluaran
Teks input dengan spasi ditambahkan di antara kata-kata, baris baru pada lebar kolom, dan titik tanda hubung dipilih untuk sepenuhnya membenarkannya dengan lebar kolom. Untuk fungsi, array string (satu untuk setiap baris) dapat dikembalikan alih-alih menggunakan pemisahan baris baru.
Output yang mungkin untuk input di atas mungkin:
There's no business like
show business, no bus-
iness I know.
Perhatikan bahwa semua tanda hubung telah dihapus kecuali yang ada di "bus-iness" terakhir, yang disimpan untuk menunjukkan bahwa kata tersebut membungkus ke baris berikutnya, dan dipilih untuk memastikan baris kedua berisi teks sebanyak mungkin.
Aturan
Dalam setiap baris, jumlah spasi di antara kata-kata tidak dapat berbeda lebih dari 1, tetapi di mana Anda memasukkan spasi tambahan terserah Anda:
hello hi foo bar <-- not permitted (1,1,5) hello hi foo bar <-- not permitted (2,1,4) hello hi foo bar <-- OK (2,2,3) hello hi foo bar <-- OK (2,3,2) hello hi foo bar <-- OK (3,2,2)
Tidak ada garis yang dapat dimulai atau diakhiri dengan spasi (kecuali baris terakhir, yang dapat diakhiri dengan spasi).
Baris terakhir harus dibenarkan, berisi spasi tunggal antara setiap kata. Ini dapat diikuti oleh spasi putih / baris baru yang sewenang-wenang jika diinginkan, tetapi ini tidak diperlukan.
Kata-kata akan terdiri dari AZ, az, 0-9 dan tanda baca sederhana (
.,'()&
)Anda dapat mengasumsikan bahwa tidak ada fragmen kata yang akan lebih panjang dari lebar target, dan akan selalu memungkinkan untuk mengisi baris sesuai dengan aturan (yaitu akan ada setidaknya 2 fragmen kata pada setiap baris, atau 1 fragmen kata yang mengisi baris sempurna)
Anda harus memilih titik tanda hubung yang memaksimalkan jumlah karakter kata pada baris sebelumnya (yaitu kata-kata harus dikonsumsi dengan rakus oleh baris), misalnya:
This is an input stri-ng with hyph-en-at-ion poi-nts. This is an input stri- <-- not permitted ng with hyphenation points. This is an input string with hyph- <-- not permitted enation points. This is an input string with hyphen- <-- OK ation points.
Kode terpendek dalam byte menang
Contohnya
Width: 20
Text: The q-uick brown fox ju-mp-s ove-r t-h-e lazy dog.
The quick brown fox
jumps over the lazy
dog.
Width: 32
Text: Given a width and a block of text cont-ain-ing pos-sible hyphen-ation points, for-mat it ful-ly-just-ified (in mono-space).
Given a width and a block of
text containing possible hyphen-
ation points, format it fully-
justified (in monospace).
Width: 80
Text: Pro-gram-ming Puz-zles & Code Golf is a ques-tion and ans-wer site for pro-gram-ming puz-zle enth-usi-asts and code golf-ers. It's built and run by you as part of the St-ack Exch-ange net-work of Q&A sites. With your help, we're work-ing to-g-et-her to build a lib-rary of pro-gram-ming puz-zles and their sol-ut-ions.
Programming Puzzles & Code Golf is a question and answer site for programming
puzzle enthusiasts and code golfers. It's built and run by you as part of the
Stack Exchange network of Q&A sites. With your help, we're working together to
build a library of programming puzzles and their solutions.
Width: 20
Text: Pro-gram-ming Puz-zles & Code Golf is a ques-tion and ans-wer site for pro-gram-ming puz-zle enth-usi-asts and code golf-ers. It's built and run by you as part of the St-ack Exch-ange net-work of Q&A sites. With your help, we're work-ing to-g-et-her to build a lib-rary of pro-gram-ming puz-zles and their sol-ut-ions.
Programming Puzzles
& Code Golf is a
question and answer
site for programming
puzzle enthusiasts
and code golfers.
It's built and run
by you as part of
the Stack Exchange
network of Q&A
sites. With your
help, we're working
together to build a
library of program-
ming puzzles and
their solutions.
Width: 5
Text: a b c d e f g h i j k l mm nn oo p-p qq rr ss t u vv ww x yy z
a b c
d e f
g h i
j k l
mm nn
oo pp
qq rr
ss t
u vv
ww x
yy z
Width: 10
Text: It's the bl-ack be-ast of Araghhhhh-hhh-h-hhh-h-h-h-hh!
It's the
black be-
ast of
Araghhhhh-
hhhhhhhhh-
hhh!
anybod-y
dengan lebar 7, dapatkah kita memilih untuk menampilkan salah satu anybody
atau anybod-\ny
?