ท้าทาย
กำหนดตารางสี่เหลี่ยมของอักขระ ASCII ที่พิมพ์ได้เป็นสตริงหรือผ่านอินพุตมาตรฐานให้เขียนฟังก์ชันหรือโปรแกรมที่ยุบอักขระที่ไม่ใช่ช่องว่างลงในกองด้านล่าง
กฎระเบียบ:
- เอาต์พุตมีขนาดและตัวอักษรเหมือนกับอินพุต
- เป็นตัวละครที่ไม่ใช่พื้นที่ที่
(row a,column b)
ไม่สามารถมีอักขระช่องว่าง' '
ที่(a-1, b)
,(a-1,b-1)
หรือ(a-1,b+1)
ที่แถวที่มีเลขขึ้นมาจากด้านล่างสุด นี่คือผลที่ตามมาว่ากองแนวตั้งทั้งหมดควรยุบไปด้านข้าง - อักขระที่ไม่เว้นวรรคสามารถเดินทางได้หลาย
(initial height - final height)
ที่ทางซ้ายหรือขวา (ดูรูปที่ 1) - คุณสามารถสมมติว่าภาพมีพื้นที่เพียงพอที่จะยุบลงโดยไม่มีตัวอักษรตกลงมาจากหน้าจอ
รูปที่ 1: ตำแหน่งสุดท้ายที่เป็นไปได้สำหรับตัวอักษรที่@#$
แสดงx,y,z
ตามลำดับ
..............
...@..........
..xxx.........
.xxxxx...#....
xxxxxxx.yyy.$.
ลำดับการยุบอักขระสามารถเลือกได้อย่างอิสระ ช่องว่างต่อท้ายไม่เป็นไร แต่มีการขึ้นบรรทัดใหม่
นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ!
ตัวอย่าง
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
..."Have you mooed today?"...
หนึ่งเอาต์พุตที่เป็นไปได้:
--(_
/----|/|(o_)
/|/~\---~\\/o)
..."Have*you~mooed~today?"...