編集ルールの文言を修正して、暗黙的で明示的なものを作成しました。また、明らかな混乱のいくつかのポイントを明確にするためにいくつかの強調を追加し、関数の代わりにスタンドアロンプログラムを作成するオプションを明示的に定義しました。
ここでの目標は、テキストファイル(または文字列)を取得し、行を列に、またはその逆に転置する関数を作成することです。
例:
私はテキストです。 転置して それできますか?
結果:
これは、C ら あん mn sy アポ ou ts ええ XO tm .ei .t ?
ルール:
- あなたは、使用される唯一の空白文字があると仮定することは許可されている
" "
と"\n"
し、任意の行には、末尾の空白が存在しないこと。 - ファイルはASCIIであると想定できます。使用するエンドラインマーカーはユーザー次第です(CRLFまたはLF)。これは一例で正しく動作しなければならないが、それはまた、上で動作するはずの任意満たす上記の仮定することを入力。
- 列の行を維持するために、スペースがない場合(例のように)を挿入する必要がある場合があります。
- 結果のどの行にも末尾の空白があってはなりません。
- 最後の改行文字(最後の行)はオプションです。
- 関数または完全なプログラムでなければなりません。関数が文字列を受け入れる場合、結果を文字列として返す必要があります。ファイル名を受け入れる場合、結果を保存したファイルの名前を返します。さらに、STDINからの入力を受け入れ、正しい結果をSTDOUTに出力する完全なプログラムを作成できます。これを行う場合、STDERRに何も出力しないでください。
- 最短の手順で勝ちますが、私は好きな答えを投票します。
規則に基づいて、例の出力は、最終改行が含まれるかどうかに応じて、53または52バイト(LF改行の場合)の長さです。
注:特定の要件ではありませんが、連続して2回実行される関数が元の関数と同一ではない場合(最終的な改行が異なる場合があり、ファイルの最後の空行が削除されます)、おそらくルールの1つを破っています。