ความท้าทาย
รับสองสตริงแต่ละความยาวสูงสุด 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 บางส่วน