Pythonでコーディングする場合、関数内に複数行の文字列が必要になることがあります。たとえば、
def f():
s = """\
Line 1
Line 2
Line 3"""
(バックスラッシュは、先頭の改行を削除することです)
s
ただし、実際に印刷しようとすると、
Line 1
Line 2
Line 3
それは私たちが望むものではありません!先頭の空白が多すぎます!
チャレンジ
英数字、スペース、および改行のみで構成される複数行の文字列が指定されている場合、各行の先頭からすべての一般的なスペースを削除します。各行には、少なくとも1つの非スペース文字が含まれることが保証されており、末尾のスペースはありません。出力には、出力全体または個々の行の前後に関係なく、余分な空白がない場合があります(1つのオプションの末尾の改行を除く)。
入力はSTDINまたは関数の引数を介して行われ、出力はSTDOUTまたは関数の戻り値を介して行われます。複数行の文字列を字下げしたり、Pythonのようなこの正確なタスクを実行するように設計された組み込み関数を使用することはできませんtextwrap.dedent
。
これはcode-golfであるため、最小バイト数のソリューションが優先されます。標準の抜け穴が適用されます。
テストケース
"a" -> "a"
" abc" -> "abc"
" abc\n def\n ghi" -> " abc\ndef\n ghi"
" a\n b\n c" -> "a\nb\nc"
" a\n b\n c\nd" -> " a\n b\n c\nd"
" a b\n c d\n e f" -> "a b\n c d\n e f"
たとえば、最後のテストケースは
a b
c d
e f
先頭のスペースを削除すると、次のようになります。
a b
c d
e f