対応する単語を表す下線のシーケンスを持つ2つの文字列の入力が与えられた場合、「空白」が埋められた文を出力します。
この課題を説明する最良の方法は、例です。入力例を次に示します。
programming _____________ and code golf
programming puzzles ______ code ____
次に、対応する出力を示します。
programming ___puzzles___ and code golf
programming puzzles _and__ code golf
このチャレンジでは、「単語」は1つ以上の小文字のシーケンスとして定義され、「空白」は1つ以上のアンダースコアとして定義されます(入力には常に小文字、スペース、アンダースコアのみが含まれます) 。入力文字列の単語と空白は単一のスペースで区切られ、文の単語と空白の数の合計は常に等しくなります。
チャレンジの目的は、すべての空白を正しい 単語で埋めることです。これは、スペースで分割したときに他の文字列の同じインデックスを占める単語です。
上記の例で「パズル」という単語で示されているように、単語は空白の中央に配置する必要があります。どちらの側にも同じ数の下線が残ります。
単語を正確に中央に配置できない場合は、余分なアンダースコアを左または右に配置できます(上記の例では「and」という単語)。
単語が収まるのに十分なアンダースコアが常に存在しますが、単語の長さと正確に同じ長さになる場合があります(上記の例では単語 "ゴルフ")。
両方の文字列の同じ位置に空白が存在することはありません。
入力/出力は次のいずれかになります(入力/出力は必ずしも同じメソッド経由である必要はありません)。
アルファベット、スペース、またはアンダースコア以外の文字で区切られた単一の文字列(改行またはコンマ区切りの文字列など)
配列/リスト/など。2つの文字列の
2つの関数/コマンドライン引数(入力のみ)
これはcode-golfであるため、バイト単位の最短コードが優先されます。
上記の例をテストケースとして使用できます。次に、より大きなテストケースを示します(出力の2番目の文字列は、センタリング動作が異なるために若干異なる場合があります)。
lorem _____ dolor _____ amet _______________ adipiscing elit mauris dapibus tincidunt _____________________________ accumsan fringilla proin vulputate viverra lorem fermentum dictum
lorem ipsum ______ sit _______ consectetur _______________ elit mauris dapibus tincidunt metus accumsan fringilla proin vulputate viverra lorem ____________________________ dictum
lorem ipsum dolor _sit_ amet __consectetur__ adipiscing elit mauris dapibus tincidunt ____________metus____________ accumsan fringilla proin vulputate viverra lorem fermentum dictum
lorem ipsum dolor_ sit _amet__ consectetur __adipiscing___ elit mauris dapibus tincidunt metus accumsan fringilla proin vulputate viverra lorem _________fermentum__________ dictum