Ao codificar em Python, às vezes você deseja uma sequência multilinha dentro de uma função, por exemplo
def f():
s = """\
Line 1
Line 2
Line 3"""
(A barra invertida é para remover uma nova linha principal)
Se você tentar realmente imprimir s
, no entanto, receberá
Line 1
Line 2
Line 3
Não é isso que queremos! Há muito espaço em branco à esquerda!
O desafio
Dada uma sequência multilinha composta apenas por caracteres alfanuméricos, espaços e novas linhas, remova todos os espaços comuns do início de cada linha. É garantido que cada linha tenha pelo menos um caractere que não seja de espaço e não terá espaços à direita. A saída pode não ter espaços em branco externos, seja antes ou depois de toda a saída ou de uma linha individual (com exceção de uma única nova linha de rastreamento opcional).
A entrada pode ser via STDIN ou argumento de função e a saída pode ser via STDOUT ou valor de retorno da função. Você não pode usar nenhum built-in projetado para deduzir cadeias de linhas múltiplas ou executar esta tarefa exata, por exemplo, do Python textwrap.dedent
.
Isso é código-golfe , então a solução com o menor número de bytes vence. Aplicam-se brechas padrão .
Casos de teste
"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 exemplo, o último caso de teste é
a b
c d
e f
e deve ficar assim depois de remover os espaços à esquerda:
a b
c d
e f