หลักฐานที่ยอดเยี่ยมที่สุดเล็กไปจนถึงน้อยมาก -!


12

คุณนั่งที่บ้านถูมือของคุณในแบบที่ชั่วร้ายที่สุด เวลานี้ฉันจะสามารถตั้งค่าชุมชน A-SPIN! ฉันเพียงแค่อ้างว่าฉันได้พิสูจน์ปัญหานี้ (ซึ่งไม่น่าสงสัยเลยว่าแก้ไขได้) ในหนังสือเล่มนี้ที่นี่ ...คุณเปิดไปที่หน้าแรกที่เกี่ยวข้อง คุณเขียนลวก ๆ คำเหล่านั้น ...

คุณเป็นคนชั่วแฟร์มาต์! ฮ่าฮ่าล้อเล่นนะ คุณรู้ว่ามันไม่ได้เกิดขึ้นเช่นนี้ นี่เป็นเพียงการเล่าเรื่องคู่แฝดที่ชั่วร้ายของเขา รูปแบบที่นี่ขี้เกียจเกินกว่าที่จะย่อ“ หลักฐาน” ของเขาลงในระยะขอบ เขาได้เรียกร้องให้คุณทำเพื่อเขา

วัตถุประสงค์ได้รับการพิสูจน์ (สตริง) และหน้า (บล็อกข้อความ) "เขียน" ลงในระยะขอบพิสูจน์

กฎของหน้าที่ถูกต้อง

บล็อกข้อความมีหน้าถ้าหากตรงตามข้อกำหนดต่อไปนี้:

  • เส้นขอบด้านบนและด้านล่างเป็นรูปแบบ-{10,}\+$(นิพจน์ปกติเป็น-เวลาอย่างน้อยสิบครั้งจนถึง a +จากนั้นจึงสิ้นสุดบรรทัด)
  • |ทุกคนที่ไม่ใช่สายบนและด้านล่างที่ไม่ต้องจบลงด้วยการ จะมีอย่างน้อยหนึ่งบรรทัดดังกล่าว
  • จะมีช่องว่างอย่างน้อยห้าช่องจากช่องว่างสุดท้าย|ในแต่ละบรรทัด
  • ทุกบรรทัดมีความกว้างเท่ากัน

ดังนั้นต่อไปนี้เป็นหน้าที่ถูกต้อง ( .s ใช้สำหรับแสดงว่าขอบมาร์จิ้นสูงสุด):

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

นี่คือหน้าอื่นที่มีระยะห่างที่กว้างขึ้น

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

คุณต้องเขียนสตริงที่กำหนดในระยะขอบโดยรักษาคำที่คุณสามารถทำได้เท่าที่คุณจะทำได้ ตัวอย่างเช่นถ้าhelloเหมาะสมกับบรรทัดถัดไปอย่าทำลายมันในบรรทัดปัจจุบัน

I / O

เติมข้อความ

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|
----------+

นี่คือดังนั้นโปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ!


ลีดเดอร์บอร์ด


ใหม่เล็กน้อยสำหรับ codegolf ฉันสามารถรับหน้าและพิสูจน์ไฟล์ได้หรือไม่ หรือพวกเขาต้องมาจากผู้ใช้ I / O?
wnnmaw

@wnnmaw ยินดีต้อนรับสู่ code golf! ถ้าดีกว่าคุณอาจเลือกอ่านจากไฟล์
Conor O'Brien


@ Mego ไม่มาก สิ่งนี้ต้องการให้คุณรับรู้ "ส่วนต่าง" นอกจากนี้ ข้อความนั้นจะต้องได้รับการพิสูจน์ไม่ใช่แค่แยก
Conor O'Brien

ขอบคุณสำหรับการสอนฉันเกี่ยวกับ Lorem ipsum : P
Rɪᴋᴇʀ

คำตอบ:


4

Python 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พร้อมเนื้อหาf.txtตามด้วยรหัสผลลัพธ์

กรณีที่ 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|
------------------------+

กรณีที่ 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.                 |
-----------------------------------------+

กรณีที่ 3

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

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

เมื่อได้คำที่ไม่พอดีกับส่วนที่เหลือของหนึ่งบรรทัดโปรแกรมของคุณควรใส่ไว้ในบรรทัดถัดไป
Conor O'Brien

คุณเห็นว่ามันไม่ทำงานด้วยวิธีนี้
wnnmaw

ในตัวอย่างแรกของคุณควรใส่ "ยอดเยี่ยม" ในบรรทัดถัดไป ในตัวอย่างที่สองของคุณควรใส่ "superca" ในบรรทัดถัดไป ขออภัยในความคลุมเครือที่นั่น
Conor O'Brien

1
แต่ "ยอดเยี่ยม" ไม่เหมาะกับบรรทัดถัดไปมันต้องฝ่าฝืนอย่างใดอย่างหนึ่งดังนั้นฉันจึงไม่เห็นว่าสิ่งนี้ไม่สอดคล้องกับกฎตามที่เขียนไว้ในปัจจุบัน ขณะนี้ฉันไม่ทราบวิธีการใช้รหัสตามที่คุณกำลังอธิบาย
wnnmaw

2
คุณมีจุดนั่นคือวิธีที่มันเป็นคำพูด ความผิดของฉันอย่างสิ้นเชิงรหัสของคุณก็โอเค
Conor O'Brien
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.