Podczas kodowania w Pythonie czasami potrzebujesz ciągu wielowierszowego w funkcji, np
def f():
s = """\
Line 1
Line 2
Line 3"""
(Ukośnik odwrotny polega na usunięciu wiodącej nowej linii)
Jeśli jednak spróbujesz wydrukować s
, otrzymasz
Line 1
Line 2
Line 3
Wcale nie tego chcemy! Zbyt wiele wiodących białych znaków!
Wyzwanie
Biorąc pod uwagę ciąg wielowierszowy składający się wyłącznie ze znaków alfanumerycznych, spacji i nowych linii, usuń wszystkie wspólne spacje na początku każdej linii. Każda linia ma co najmniej jeden znak spacji i nie będzie zawierać spacji końcowych. Wyjście może nie mieć obcych białych znaków, niezależnie od tego, czy będzie to przed, czy po całym wyjściu lub pojedynczym wierszu (z wyjątkiem jednej opcjonalnej końcowej nowej linii).
Dane wejściowe mogą być przesyłane za pośrednictwem argumentu STDIN lub funkcji, a dane wyjściowe mogą być przekazywane za pośrednictwem parametru STDOUT lub zwracanej wartości funkcji. Nie można używać żadnych wbudowanych funkcji, które są przeznaczone do dedentycznego ciągów wielowierszowych lub wykonywania dokładnie tego zadania, np. Pythonatextwrap.dedent
.
To jest golf golfowy , więc wygrywa rozwiązanie w najmniejszej liczbie bajtów. Standardowe luki .
Przypadki testowe
"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"
Na przykład ostatni przypadek testowy to
a b
c d
e f
i powinien wyglądać tak po usunięciu wiodących spacji:
a b
c d
e f