파이썬으로 코딩 할 때 때로는 함수 내에 여러 줄 문자열을 원합니다.
def f():
s = """\
Line 1
Line 2
Line 3"""
(백 슬래시는 선행 줄 바꿈을 제거하는 것입니다)
s
그러나 실제로 인쇄하려고 하면 얻을 수 있습니다.
Line 1
Line 2
Line 3
그것은 우리가 전혀 원하는 것이 아닙니다! 선행 공백이 너무 많습니다!
도전
영숫자 문자, 공백 및 줄 바꾸기로 구성된 여러 줄 문자열이 제공되면 각 줄의 시작 부분에서 모든 공통 공백을 제거하십시오. 각 줄에는 공백이 아닌 문자가 하나 이상 있어야하며 뒤에 공백이 없습니다. 출력은 전체 출력 또는 개별 행 전후에 관계없이 공백이 없을 수 있습니다 (단일 선택적 후행 줄 바꿈 제외).
입력은 STDIN 또는 함수 인수를 통해 이루어질 수 있으며, 출력은 STDOUT 또는 함수 리턴 값을 통해 이루어질 수 있습니다. 당신은 할 수 dedent 여러 문자열로 설계되는 모든 내장 명령을 사용하거나이 정확한 작업, 예를 들어 파이썬을 수행 textwrap.dedent
.
이것은 code-golf 이므로 가장 적은 바이트의 솔루션이 이깁니다. 표준 허점이 적용됩니다.
테스트 사례
"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