Wenn Sie in Python codieren, möchten Sie manchmal einen mehrzeiligen String in einer Funktion, z
def f():
s = """\
Line 1
Line 2
Line 3"""
(Der Backslash ist das Entfernen eines führenden Zeilenumbruchs)
Wenn Sie jedoch versuchen, tatsächlich auszudrucken s
, erhalten Sie
Line 1
Line 2
Line 3
Das wollen wir überhaupt nicht! Es gibt zu viel führendes Leerzeichen!
Die Herausforderung
Entfernen Sie bei einer mehrzeiligen Zeichenfolge, die nur aus alphanumerischen Zeichen, Leerzeichen und Zeilenumbrüchen besteht, alle gemeinsamen Leerzeichen am Anfang jeder Zeile. Jede Zeile muss mindestens ein Nicht-Leerzeichen enthalten und darf keine nachgestellten Leerzeichen enthalten. Die Ausgabe darf keine Leerzeichen enthalten, sei es vor oder nach der gesamten Ausgabe oder einer einzelnen Zeile (mit Ausnahme einer einzelnen optionalen nachgestellten Zeile).
Die Eingabe kann über STDIN oder ein Funktionsargument erfolgen, und die Ausgabe kann über STDOUT oder einen Funktionsrückgabewert erfolgen. Sie können keine eingebauten Funktionen verwenden, die dazu dienen, mehrzeilige Zeichenfolgen zu dedizieren oder genau diese Aufgabe auszuführen, z textwrap.dedent
. B. Python's .
Das ist Code-Golf , also gewinnt die Lösung mit den wenigsten Bytes. Es gelten Standardlücken .
Testfälle
"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"
Zum Beispiel ist der letzte Testfall
a b
c d
e f
und sollte so aussehen, nachdem führende Leerzeichen entfernt wurden:
a b
c d
e f