Thời gian cho một thách thức typography mới ! Đây là một vấn đề phổ biến khi dán sao chép giữa các định dạng tài liệu khác nhau: gạch nối. Mặc dù nó làm giảm sự rách rưới của bố cục căn lề trái hoặc tăng khoảng cách trong bố cục hợp lý, nhưng đó là một nỗi đau hoàn toàn khi PDF của bạn không được xây dựng chính xác và giữ lại các dấu gạch nối trong bố cục, khiến văn bản sao chép của bạn khó chỉnh sửa hoặc chỉnh lại.
May mắn thay, nếu chúng ta tin vào vô số sách tự giúp đỡ ngoài kia, không có gì là vấn đề nếu bạn coi đó là một thách thức. Tôi tin rằng những cuốn sách tự giúp đỡ này không có ngoại lệ đề cập đến PPCG, nơi mọi vấn đề sẽ được giải quyết nếu được đưa ra như một thách thức. Nhiệm vụ của bạn là loại bỏ gạch nối vi phạm và ngắt dòng khỏi văn bản, để nó sẵn sàng dán vào bất kỳ trình soạn thảo văn bản nào.
Mô tả vấn đề
Bạn sẽ viết một chương trình hoặc chức năng loại bỏ gạch nối và ngắt dòng nếu có. Đầu vào sẽ là một chuỗi trên stdin
(hoặc thay thế gần nhất) hoặc là một đầu vào chức năng. Đầu ra (trên stdout
hoặc thay thế gần nhất hoặc đầu ra chức năng) sẽ là văn bản 'được sửa'. Văn bản này nên được sao chép trực tiếp . Điều này có nghĩa là đầu ra dẫn đầu hoặc theo dõi là OK, nhưng đầu ra bổ sung giữa chừng văn bản đã sửa của bạn (ví dụ: khoảng trắng hàng đầu trên mỗi dòng) thì không .
Trường hợp cơ bản nhất là như sau (lưu ý: không có dấu cách)
Lorem ipsum dolor sit amet, con-
sectetur adipiscing elit. Morbi
lacinia nisi sed mauris rhoncus.
Các dấu gạch nối và ngắt dòng vi phạm nên được loại bỏ, để có được
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi lacinia nisi sed mauris rhoncus.
Tuy nhiên, một vài trường hợp ngoại lệ nên được quan sát.
- Dòng mới đôi cho thấy một đoạn ngắt, và nên được giữ lại.
- Danh từ và tên thích hợp không bao giờ bị phá vỡ trên hai dòng, trừ khi chúng đã có dấu gạch nối (ví dụ: phương trình Navier-Stokes). Ngắt dòng nên được loại bỏ, nhưng dấu gạch nối được giữ lại. Những trường hợp này có thể được xác định bằng cách chỉ viết hoa chữ cái đầu tiên.
- Đôi khi, một dấu gạch nối chỉ một nhóm từ (ví dụ thế kỷ XIX và thế kỷ XX). Khi điều này xảy ra trên hai dòng, điều này được chỉ định bằng một khoảng trắng ở dòng tiếp theo.
Một ví dụ: (các quan điểm thể hiện trong ví dụ này là hư cấu và không nhất thiết thể hiện quan điểm của tác giả; những người phản đối phương pháp Runge-Kutta-Fehlberg đều được hoan nghênh tham gia vào thử thách này)
Differential equations can
be solved with the Runge-Kutta-
Fehlberg method.
Developed in the nineteenth-
or twentieth century, this
method is completely FANTAS-
TIC.
sẽ trở thành
Differential equations can be solved with the Runge-Kutta-Fehlberg method.
Developed in the nineteenth- or twentieth century, this method is completely FANTASTIC.
Các dấu ngắt dòng có thể là điểm mã \n
hoặc \r\n
ASCII tùy theo sở thích của bạn và dấu gạch nối là một ASCII đơn giản -
(dấu trừ). Không cần hỗ trợ UTF-8. Thử thách này là môn đánh gôn , vì vậy đoạn mã ngắn nhất sẽ thắng.