Python'da kodlama yaparken, bazen bir işlev içinde çok satırlı bir dize istersiniz, ör.
def f():
s = """\
Line 1
Line 2
Line 3"""
(Ters eğik çizgi, önde gelen bir yeni satırı kaldırmaktır)
s
Ancak, gerçekten yazdırmaya çalışırsanız ,
Line 1
Line 2
Line 3
Bizim istediğimiz bu değil! Çok fazla önde gelen boşluk var!
Meydan okuma
Yalnızca alfasayısal karakterler, boşluklar ve yeni satırlardan oluşan çok satırlı bir dize verildiğinde, her satırın başındaki tüm ortak boşlukları kaldırın. Her satırın en az bir boşluk olmayan karaktere sahip olması ve hiçbir boşluk içermemesi garanti edilir. Çıktının tamamı veya tek bir satır (ister isteğe bağlı tek bir son satırsonu hariç) olsun, ister çıktıdan önce veya sonra olsun, yabancı boşluklara sahip olmayabilir.
Giriş STDIN veya işlev bağımsız değişkeni üzerinden olabilir ve çıkış STDOUT veya işlev dönüş değeri üzerinden olabilir. Sen olamaz dedent satırlı dizeleri için tasarlanmıştır herhangi yerleşiklerini kullanabilir veya tam bu görevi, örneğin Python en gerçekleştirmek textwrap.dedent
.
Bu kod golf , bu yüzden en az bayt içindeki çözüm kazanır. Standart boşluklar geçerlidir.
Test senaryoları
"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"
Örneğin, son test durumu
a b
c d
e f
ve önde gelen alanları soyduktan sonra şöyle görünmelidir:
a b
c d
e f