ความท้าทาย
รับสองสตริงแต่ละความยาวสูงสุด 30 ประกอบด้วยอักขระ ASCII ที่พิมพ์ได้ (รหัส ) วางลงบนเครื่องชั่งในจำนวนไบต์ที่น้อยที่สุดของโค้ด! ประกอบด้วยขั้นตอนต่อไปนี้:
- คำนวณและเปรียบเทียบน้ำหนักของสตริง
- เลือกสเกลศิลปะ ASCII ที่เอียงได้อย่างเหมาะสม
- วางสองสตริงลงบนสเกล
สตริงอาจถูกส่งเป็นอาร์เรย์อาร์กิวเมนต์สองรายการหรือวิธีการอื่นที่สมเหตุสมผล
น้ำหนักของสตริงที่ถูกกำหนดให้เป็นผลรวมของน้ำหนักของตัวละครของสตริงที่ที่นี้:
- ช่องว่างมีน้ำหนัก 0 (
)
- อักษรตัวพิมพ์เล็กมีน้ำหนัก 2 (
abcdefghijklmnopqrstuvwxyz
) - ตัวอักษรตัวพิมพ์ใหญ่มีน้ำหนัก 4 (
ABCDEFGHIJKLMNOPQRSTUVWXYZ
) - สัญลักษณ์อื่น ๆ ทั้งหมดมีน้ำหนัก 3 (
!"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~
)
เครื่องชั่งมีลักษณะดังนี้:
. _ | _- * / \ | - * / \ _- * | / \ _- * | / \ / \ | * * * * * * * * ------ / \ | / \ | / \ | * ------ * | ______ | ______
_. / \ * -_ | / \ * - | / \ | * -_ / \ | * -_ * ------ * | / \ | / \ | / \ | / \ | * * * * * * * * ------ ______ | ______
. | ______ | ______ / \ | / \ / \ | / \ / \ | / \ / \ | / \ * ------ * | * * * * * * * * ------ | | ______ | ______
หากสตริงแรกหนักกว่าให้ใช้การวาดแรกเป็นฐานของเอาต์พุตของคุณ ถ้าสตริงที่สองหนักให้ใช้การวาดที่สอง หากสตริงมีน้ำหนักเท่ากันให้ใช้ชุดที่สาม อนุญาตช่องว่างต่อท้าย
ฉันจะใช้ส่วนของการวาดภาพที่สามเป็นฐานสำหรับตัวอย่างต่อไปนี้ทั้งหมด
สายแรกควรวางไว้บนถาดด้านซ้ายและสายที่สองลงบนถาดด้านขวา
วางสตริงบนกระทะโดยวางอักขระที่ไม่ใช่ช่องว่างไว้ในพื้นที่ 6x5 เหนือเครื่องหมายขีดกลางดังที่ทำเครื่องหมายไว้#
ที่นี่ (คุณอาจจะเขียนทับส่วนหนึ่งของเครื่องชั่ง - ซึ่งก็ดี):
###### _ ###### ###### ###### / ###### \ * * * * * * * * ------
อักขระเหล่านี้ทั้งหมดควร "ตัดสิน" เช่น เหนือ-
อักขระหรืออักขระอื่นจากสตริง:
ผิดที่ไม่ถูกต้อง ____ ____ ____ f / \ / \ / \ l \ / \ / \ / \ / hov \ / s \ / oating \ / eri ng \ / ettled \ * ------ * * ------ * * ------ *
นอกจากนี้สแต็กทั้งหมดควรเป็นแบบเรียบที่สุดเท่าที่จะเป็นไปได้ซึ่งหมายความว่าคอลัมน์หกกว้าง 1 คอลัมน์ความสูงของที่สูงที่สุดและความสูงของที่สั้นที่สุดจะต้องไม่แตกต่างกันมากกว่า 1:
ผิดถูกต้องผิดถูกต้อง [สูงที่สุด: 5] [สูงที่สุด: 4] [สูงที่สุด: 5] [สูงที่สุด: 2] [สั้นที่สุด: 0] [สั้นที่สุด: 2] [สั้นที่สุด: 4] [สั้นที่สุด: 2] 5__5_ ____ 5_5__ ____ 45445 & / \ 445454 / \ 45445 $% & $ @ 445454 / \ / 45445 &% @% $ & 445454% & $ @% & / 45445 \ / & $ @ $ &% \ / 445454 \ / $ @ $% $$ \ * ------ * * ------ * * ------ * * ------ *
ลำดับ / การจัดเรียงที่แน่นอนของตัวละครไม่สำคัญ ต่อไปนี้เป็นข้อตกลงที่ถูกต้องทั้งหมดสำหรับสตริง "ชั่งน้ำหนักคำพูดของคุณ!":
____ ____ ____ ____ / \ / \ / \ / \ ds! \ / เป็นหนี้ oe \ u! Wd \ ของเราหรือ Wihuos yoiwgr eghioo / Weighy \ / egyrr! \ / Wrhd! s \ / rrsuwy \ * ------ * * ------ * * ------ * * ------ *
กรณีทดสอบ
อินพุต: "โค้ดกอล์ฟ", "ความท้าทายในการเขียนโค้ด" น้ำหนัก: 32, 32 ตัวอย่างผลลัพธ์: . | ______ | ______ / \ | / \ / \ | Nge \ s / OO \ | challe / CFGLED \ | / การเข้ารหัส \ * ------ * | * * * * * * * * ------ | | ______ | ______
INPUT: "", "$" น้ำหนัก: 0, 3 ตัวอย่างผลลัพธ์: _. / \ * -_ | / \ * - | / \ | * -_ / \ | * -_ * ------ * | / \ | / \ | / \ | / $ \ | * * * * * * * * ------ ______ | ______
อินพุต: "คุณรู้ว่าพวกเขาพูดอะไร!", "there_always_a_relevant_xkcd" น้ำหนัก: 75, 65 ตัวอย่างผลลัพธ์: . tr_a_s | _hekx_y | - * elcdta _- * | revanw _- * | / e's_al \ T / \ | * * * * * * * * ------ AUYOHY | A! HWYK | / OTSMEW \ | * ------ * | ______ | ______
+1
จุดป้องกันผมจากการให้มันของฉัน ประการแรก: หากช่องว่างไม่ "ชั่งน้ำหนัก" อะไรเลยและไม่รวมอยู่ในงานศิลปะแล้วทำไมต้องรวมมันเข้าไปด้วย เป็นค่าใช้จ่ายที่ไม่จำเป็นเพียงเพื่อกรองพวกเขาออกก่อน ประการที่สอง: นี่เป็นความรู้สึกท้าทายสำหรับฉัน "2-in-1" / chameleon สำหรับฉัน - ความท้าทายที่ 1: ตรวจสอบว่าสตริงใดที่ "หนักกว่า" ความท้าทายที่ 2: สร้าง ASCII-art บางส่วน