При кодировании на Python иногда вам нужна многострочная строка внутри функции, например
def f():
s = """\
Line 1
Line 2
Line 3"""
(Обратный слеш должен убрать ведущий символ новой строки)
Если вы попытаетесь распечатать s
, вы получите
Line 1
Line 2
Line 3
Это совсем не то, что мы хотим! Слишком много ведущих пробелов!
Соревнование
Учитывая многострочную строку, состоящую только из буквенно-цифровых символов, пробелов и символов новой строки, удалите все общие пробелы в начале каждой строки. Каждая строка гарантированно имеет по крайней мере один непробельный символ и не будет завершающих пробелов. Вывод может не иметь посторонних пробелов, будь то до или после всего вывода или отдельной строки (за исключением одного необязательного завершающего символа новой строки).
Ввод может быть через STDIN или аргумент функции, а выход может быть через STDOUT или возвращаемое значение функции. Вы не можете использовать любые встроенные функции, предназначенные для отступления многострочных строк или выполнения этой точной задачи, например Python textwrap.dedent
.
Это код-гольф , поэтому выигрывает решение с наименьшим количеством байтов. Применяются стандартные лазейки .
Контрольные примеры
"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"
Например, последний контрольный пример
a b
c d
e f
и должен выглядеть следующим образом после удаления ведущих пробелов:
a b
c d
e f