Một bằng chứng xuất sắc nhất, quá nhỏ so với fi!


12

Bạn ngồi ở nhà, xoa tay một cách ác độc nhất. Lần này, tôi sẽ có thể thiết lập cộng đồng A-SPIN! Tôi sẽ chỉ tuyên bố rằng tôi đã chứng minh vấn đề này (không nghi ngờ gì là có thể ứng biến được) trong cuốn sách này tại đây Bạn mở trang đầu tiên có liên quan. Bạn viết nguệch ngoạc những từ đó

Bạn, tất nhiên, Fermat ác! Haha, đùa thôi Bạn biết điều đó đã không xảy ra như thế này; đây chỉ đơn thuần là lời tường thuật về người anh em song sinh độc ác của anh ta, Format. Định dạng ở đây là quá lười để ngưng tụ bằng chứng của anh ấy vào lề. Do đó, anh ta đã kêu gọi bạn làm điều đó cho anh ta.

Mục tiêu Đưa ra một bằng chứng (chuỗi) và một trang (khối văn bản), "ghi" vào lề bằng chứng.

Quy tắc trang hợp lệ

Một khối văn bản chứa một trang khi và chỉ khi nó đáp ứng các yêu cầu sau:

  • Các đường viền trên và dưới có dạng -{10,}\+$(Biểu thức chính quy -ít nhất mười lần cho đến khi a +, sau đó kết thúc dòng).
  • Mọi dòng không phải trên cùng và không dưới cùng phải kết thúc bằng a |. Sẽ có ít nhất một dòng như vậy.
  • Sẽ có ít nhất năm khoảng trắng từ cuối cùng |trong mỗi dòng.
  • Tất cả các dòng có cùng chiều rộng.

Vì vậy, sau đây là một trang hợp lệ ( .s là để hiển thị nơi biên giới hạn tối đa là):

-----------------+
Lorem Ipsum.     |
and other  .     |
latin crud .     |
           .     |
        EOF.     |
-----------------+

Đây là một trang khác với lề rộng hơn:

------------------------+
Hello world!   .        |
How are you, to.        |
day? --Mme. B  .        |
               .        |
------------------------+

Bạn phải viết chuỗi đã cho vào lề, duy trì các từ mà bạn có thể, càng xa càng tốt. Ví dụ: nếu hellophù hợp với dòng tiếp theo, đừng phá vỡ nó trên dòng hiện tại.

Tôi / anh

Văn bản phụ

Proof: This is a most excellent proof, too small for anyone!
Text:                       ; not a leading newline
------------------------+
Hello world!            |
How are you, to         |
day? --Mme. B           |
                        |
------------------------+
Output: 
------------------------+
Hello world!    This a  |
How are you, to most    |
day? --Mme. B   excellen|
                t proof,|
------------------------+    

Proof: Execute the member as an example to the others!
Text:
------------------------------------------------+
Contrary to popular belief, Lorem               |
Ipsum is not simply random text.                |
It has roots in a piece of classical            |
Latin literature from 45 BC, making             |
it over 2000 years old. Richard                 |
McClintock, a Latin professor at                |
Hampden-Sydney College in Virginia,             |
looked up one of the more obscure               |
Latin words, consectetur, from a                |
Lorem Ipsum passage, and going through          |
the cites of the word in classical              |
literature, discovered the undoubtable          |
source. Lorem Ipsum comes from...               |
------------------------------------------------+
Output:
------------------------------------------------+
Contrary to popular belief, Lorem      Execute  |
Ipsum is not simply random text.       the      |
It has roots in a piece of classical   member as|
Latin literature from 45 BC, making    an       |
it over 2000 years old. Richard        example  |
McClintock, a Latin professor at       to the   |
Hampden-Sydney College in Virginia,    others!  |
looked up one of the more obscure               |
Latin words, consectetur, from a                |
Lorem Ipsum passage, and going through          |
the cites of the word in classical              |
literature, discovered the undoubtable          |
source. Lorem Ipsum comes from...               |
------------------------------------------------+

Proof: Consider supercalifragilisticexpialidocious. Therefore, x.
Output:
-----------------------------------------+
sections 1.10.32 and                     |
1.10.33 of "de Finibus                   |
Bonorum et Malorum"                      |
(The Extremes of Good                    |
and Evil) by Cicero,                     |
written in 45 BC. This                   |
book is a treatise on                    |
the theory of ethics,                    |
very popular during the                  |
Renaissance. The first                   |
line of Lorem Ipsum,                     |
"Lorem ipsum dolor sit                   |
amet..", comes from a                    |
line in section 1.10.32.                 |
-----------------------------------------+
Output: Consider supercalifragilisticexpialidocious. Therefore, x.
-----------------------------------------+
sections 1.10.32 and     Consider        |
1.10.33 of "de Finibus   supercalifragili|
Bonorum et Malorum"      sticexpialidocio|
(The Extremes of Good    us. Therefore, x|
and Evil) by Cicero,     .               |
written in 45 BC. This                   |
book is a treatise on                    |
the theory of ethics,                    |
very popular during the                  |
Renaissance. The first                   |
line of Lorem Ipsum,                     |
"Lorem ipsum dolor sit                   |
amet..", comes from a                    |
line in section 1.10.32.                 |
-----------------------------------------+

Proof: Alex is a bird. All birds can fly. All things that fly are wrong. Ergo, Alex is wrong.
Text:
----------+
Sorry     |    ; 5 spaces. 
----------+
Output:
----------+
Sorry Alex|
----------+

Đây là một , vì vậy chương trình ngắn nhất tính bằng byte sẽ thắng!


Bảng xếp hạng


Một chút mới với codegolf, tôi có thể lấy trang và bằng chứng từ các tập tin không? Hay họ phải đến từ người dùng I / O?
wnnmaw

@wnnmaw chào mừng bạn đến với mã golf! Nếu nó tốt hơn, bạn có thể chọn đọc từ một tập tin.
Conor O'Brien


@Mego Không hẳn. Điều này muốn bạn nhận ra một "lề", ngoài ra; văn bản đó phải được chứng minh, không chỉ đơn thuần là phân tách.
Conor O'Brien

Vâng, cảm ơn vì đã dạy tôi về lorem ipsum. : P
Rɪᴋᴇʀ

Câu trả lời:


4

Con trăn 2, 334

p=open("f.txt",'r').readlines()
r,S,p=p[0][7:],p[2].strip(),p[3:-1]
import textwrap as t,itertools as i
m,l=max([len(s[:-5].strip()) for s in p]),len(S)-2
P = i.izip_longest(["{} {{:{}}}|".format(s[:m],l-m) for s in p],t.wrap(r,l-m),fillvalue="")
print S
for q in P:
 if not q[0]:break
 print q[0].format(q[1])
print S

IO mẫu với nội dung f.txttheo sau là đầu ra mã

Trường hợp 1

Proof: This is a most excellent proof, too small for anyone!
Text:                       
------------------------+
Hello world!            |
How are you, to         |
day? --Mme. B           |
                        |
------------------------+

------------------------+
Hello world!    Proof:  |
How are you, to This is |
day? --Mme. B   a most e|
                xcellent|
------------------------+

Trường hợp 2

Proof: Consider supercalifragilisticexpialidocious. Therefore, x.
Output:
-----------------------------------------+
sections 1.10.32 and                     |
1.10.33 of "de Finibus                   |
Bonorum et Malorum"                      |
(The Extremes of Good                    |
and Evil) by Cicero,                     |
written in 45 BC. This                   |
book is a treatise on                    |
the theory of ethics,                    |
very popular during the                  |
Renaissance. The first                   |
line of Lorem Ipsum,                     |
"Lorem ipsum dolor sit                   |
amet..", comes from a                    |
line in section 1.10.32.                 |
-----------------------------------------+

-----------------------------------------+
sections 1.10.32 and     Consider superca|
1.10.33 of "de Finibus   lifragilisticexp|
Bonorum et Malorum"      ialidocious.    |
(The Extremes of Good    Therefore, x.   |
and Evil) by Cicero,                     |
written in 45 BC. This                   |
book is a treatise on                    |
the theory of ethics,                    |
very popular during the                  |
Renaissance. The first                   |
line of Lorem Ipsum,                     |
"Lorem ipsum dolor sit                   |
amet..", comes from a                    |
line in section 1.10.32.                 |
-----------------------------------------+

Trường hợp 3

Proof: Alex is a bird. All birds can fly. All things that fly are wrong. Ergo, Alex is wrong.
Text:
----------+
Sorry     |   
----------+

----------+
Sorry Alex|
----------+

Khi được cung cấp một từ không phù hợp với một phần còn lại của một dòng, chương trình của bạn sẽ đặt nó trên dòng tiếp theo.
Conor O'Brien

Nơi nào bạn thấy nó không thực hiện theo cách này?
wnnmaw

Trong ví dụ đầu tiên của bạn, "xuất sắc" nên được đặt trên dòng tiếp theo; trong ví dụ thứ hai của bạn, "superca" cũng nên được đặt ở dòng tiếp theo. Xin lỗi vì sự mơ hồ ở đó.
Conor O'Brien

1
Nhưng "xuất sắc" không phù hợp với dòng tiếp theo, nó phải phá vỡ một trong hai cách để tôi không thấy điều này không phù hợp với các quy tắc như chúng hiện đang được viết. Hiện tại tôi không biết cách nào để triển khai mã như bạn đang mô tả
wnnmaw

2
Bạn có một điểm ở đó, đó cách nó được diễn đạt. Lỗi của tôi hoàn toàn, mã của bạn là tốt.
Conor O'Brien
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.