Given a width and a block of
text containing possible hyphen-
ation points, format it fully-
justified (in monospace).
完全に両端揃えとは、左右に揃えられ、各行が収まるまで単語間の間隔を広げることで実現されます。
関連:
- スペースを追加してテキストを揃える
- テキストをブロックに揃える
- ある意味では、これはテキスト処理#1の次のステップと見なすことができます:ハイフネーション(投稿されたことはないようです)。
入力
任意の形式で入力できます。あなたが与えられます:
- ターゲットの幅(文字数)、範囲5〜100(両端を含む)。
- ハイフネーションされた可能性のある単語を含むテキストブロック。これは、スペースで区切られた文字列、単語の配列、または単語の断片の配列の配列(または必要な他のデータ表現)である可能性があります。
一般的な入力は次のとおりです。
Width: 25
Text: There's no bu-si-ne-ss lik-e s-h-o-w busine-ss, n-o bus-iness I know.
ここで、ハイフンは可能なハイフネーションポイントを示し、スペースは単語の境界を示します。テキストの可能な代替表現:
[["There's"], ["no"], ["bu", "si", "ne", "ss"], ["lik", "e"], (etc.)]
出力
単語の間にスペースが追加された入力テキスト、列幅の改行、および列幅に完全に揃えるために選択されたハイフネーションポイント。関数の場合、改行区切りを使用する代わりに、文字列の配列(各行に1つ)を返すことができます。
上記の入力の可能な出力は次のとおりです。
There's no business like
show business, no bus-
iness I know.
最後の "bus-iness"を除くすべてのハイフンが削除されていることに注意してください。これは、単語が次の行に折り返されることを示すために保持されます。
ルール
各行内で、単語間のスペースの数は1を超えることはできませんが、余分なスペースを挿入する場所はユーザー次第です。
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)
スペースで開始または終了できる行はありません(スペースで終了できる最後の行を除く)。
最後の行は、各単語の間に単一のスペースを含む左揃えにする必要があります。必要に応じて、任意の空白/改行を続けることができますが、これは必須ではありません。
単語は、AZ、az、0-9、および単純な句読点(
.,'()&
)で構成されます単語の断片がターゲットの幅より長くなることはないと想定でき、常にルールに従って行を埋めることができます(つまり、各行に少なくとも2つの単語の断片、または行を埋める1つの単語の断片があります)完全に)
次の例のように、前の行の単語の文字数を最大化するハイフネーションポイントを選択する必要があります(つまり、単語は行ごとに貪欲に消費される必要があります)。
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.
バイト単位の最短コードが勝つ
例
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
幅7で終了する可能性がある場合、出力を選択できますanybody
かanybod-\ny
?