Khi mã hóa bằng Python, đôi khi bạn muốn có một chuỗi nhiều dòng trong một hàm, ví dụ:
def f():
s = """\
Line 1
Line 2
Line 3"""
(Dấu gạch chéo ngược là để xóa một dòng mới hàng đầu)
s
Tuy nhiên, nếu bạn cố gắng thực sự in ra , bạn sẽ nhận được
Line 1
Line 2
Line 3
Đó không phải là những gì chúng ta muốn! Có quá nhiều khoảng trắng hàng đầu!
Các thách thức
Đưa ra một chuỗi nhiều dòng chỉ bao gồm các ký tự chữ và số, dấu cách và dòng mới, loại bỏ tất cả các khoảng trắng chung từ đầu mỗi dòng. Mỗi dòng được đảm bảo có ít nhất một ký tự không phải khoảng trắng và sẽ không có dấu cách. Đầu ra có thể không có khoảng trắng bên ngoài, cho dù đó là trước hoặc sau toàn bộ đầu ra hoặc một dòng riêng lẻ (ngoại trừ một dòng mới theo dõi tùy chọn duy nhất).
Đầu vào có thể thông qua STDIN hoặc đối số chức năng và đầu ra có thể thông qua STDOUT hoặc giá trị trả về của hàm. Bạn không thể sử dụng bất kỳ nội dung nào được thiết kế để trích xuất các chuỗi đa dòng hoặc thực hiện tác vụ chính xác này, ví dụ: Python textwrap.dedent
.
Đây là môn đánh gôn , vì vậy giải pháp trong vài byte nhất sẽ thắng. Tiêu chuẩn áp dụng.
Các trường hợp thử nghiệm
"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"
Ví dụ, trường hợp thử nghiệm cuối cùng là
a b
c d
e f
và sẽ trông như thế này sau khi tước bỏ không gian hàng đầu:
a b
c d
e f