Al codificar en Python, a veces desea una cadena multilínea dentro de una función, por ejemplo
def f():
s = """\
Line 1
Line 2
Line 3"""
(La barra diagonal inversa es eliminar una nueva línea principal)
s
Sin embargo, si intenta imprimir realmente , obtendrá
Line 1
Line 2
Line 3
¡Eso no es lo que queremos en absoluto! ¡Hay demasiado espacio en blanco!
El reto
Dada una cadena de varias líneas que consta solo de caracteres alfanuméricos, espacios y líneas nuevas, elimine todos los espacios comunes desde el principio de cada línea. Se garantiza que cada línea tendrá al menos un carácter que no sea espacio, y no tendrá espacios finales. La salida puede no tener espacios en blanco extraños, ya sea antes o después de la salida completa o una línea individual (con la excepción de una nueva línea final opcional).
La entrada puede ser a través de STDIN o argumento de función, y la salida puede ser a través de STDOUT o valor de retorno de función. No puede usar ningún builtins diseñado para abollar cadenas multilínea o realizar esta tarea exacta, por ejemplo, Python textwrap.dedent
.
Este es el código de golf , por lo que gana la solución en la menor cantidad de bytes. Se aplican lagunas estándar .
Casos de prueba
"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"
Por ejemplo, el último caso de prueba es
a b
c d
e f
y debería verse así después de quitar los espacios iniciales:
a b
c d
e f