Quando si codifica in Python, a volte si desidera una stringa multilinea all'interno di una funzione, ad es
def f():
s = """\
Line 1
Line 2
Line 3"""
(La barra rovesciata consiste nel rimuovere una nuova riga iniziale)
Se provi a stampare effettivamente s
, tuttavia, otterrai
Line 1
Line 2
Line 3
Non è quello che vogliamo affatto! C'è troppo spazio bianco principale!
La sfida
Data una stringa multilinea composta solo da caratteri alfanumerici, spazi e nuove righe, rimuovi tutti gli spazi comuni dall'inizio di ogni riga. Ogni linea è garantita per avere almeno un carattere non spaziale e non avrà spazi finali. L'output potrebbe non avere spazi bianchi estranei, sia prima che dopo l'intero output o una singola riga (ad eccezione di una singola nuova riga finale facoltativa).
L'ingresso può essere tramite STDIN o argomento della funzione e l'output può essere tramite STDOUT o il valore di ritorno della funzione. Non è possibile utilizzare alcun builtin progettato per dedurre stringhe multilinea o eseguire questo compito esatto, ad esempio Python textwrap.dedent
.
Questo è code-golf , quindi vince la soluzione nel minor numero di byte. Si applicano scappatoie standard .
Casi test
"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"
Ad esempio, l'ultimo caso di test è
a b
c d
e f
e dovrebbe apparire così dopo aver rimosso gli spazi iniziali:
a b
c d
e f