ดีผลัดกันออกDoorknob ของ ชื่อผู้ใช้บน GitHub, Reddit และเว็บไซต์อื่น ๆ ที่เป็น KeyboardFire นั่นทำให้ฉันมีความคิด ...
งาน
คุณทำงานที่ KeyboardFire Inc. บริษัท ที่ผลิตแป้นพิมพ์พิเศษ และโดย "พิเศษ" ฉันหมายความว่าเมื่อใดก็ตามที่คุณกดปุ่มบางสิ่งในบ้านของคุณก็จะติดไฟ! ด้วย KeyboardFire Doorknob ซีรี่ส์ใหม่วัตถุที่แสงไฟเป็นลูกบิดประตู
อย่างไรก็ตามเนื่องจากข้อบังคับของรัฐบาลที่โง่ผู้ใช้ของคุณจำเป็นต้องรู้ว่าลูกบิดประตูใดในบ้านของพวกเขาจะมีแสงไฟ
พิจารณาศิลปะ ASCII นี้ของคีย์บอร์ด QWERTY:
1|2|3|4|5|6|7|8|9|0
q|w|e|r|t|y|u|i|o|p
a|s|d|f|g|h|j|k|l
z|x|c|v|b|n|m
(สิ่ง|
นี้แสดงถึงขอบเขตระหว่างกุญแจ)
เราสามารถใช้การวาดภาพ ASCII ที่แน่นอนนี้เป็น "กราฟ" ของการเรียงลำดับโดยที่อักขระแต่ละตัวในช่วง[a-z0-9]
มีดัชนี x (แนวนอน) และ y (แนวตั้ง) ซึ่ง(0,0)
อยู่ที่1
ใด ตัวอย่างเช่นตัวอักษรd
มีพิกัด(2,6)
(ท่อและช่องว่างรวมอยู่ในการคำนวณพิกัด)
ตอนนี้ลองคิดถึงบ้านของผู้ใช้แต่ละคน บ้านทุกหลังสามารถวาดมุมมองจากบนลงล่างในฐานะศิลปะ ASCII ขนาด 20x4 (ในโลกนี้ซึ่งเป็นกฎหมายที่ขายคีย์บอร์ดแบบทำลายล้างบ้านทุกหลังมีขนาดเท่ากัน) เราสามารถใช้D
เพื่อทำเครื่องหมายตำแหน่งของลูกบิดประตูแต่ละอันในบ้าน นี่คือตัวอย่าง:
D D D D
D
D D
เราจะเรียกสิ่งนี้ว่า "แผนที่บ้าน" (ใช่นั่นคือลูกบิดประตูมาก ๆ !)
การกดปุ่มใด ๆ จะทำให้ลูกบิดประตูใกล้กับเปลวไฟขึ้น ตัวอย่างเช่นถ้าเราใช้พิกัดก่อนหน้านี้ของตัวอักษรd
ที่ลูกบิดประตูที่ใกล้ที่สุด (ตามระยะทางแมนฮัตตัน) (1,4)
ที่พิกัด นี่คือลูกบิดประตูที่จะจุดไฟเมื่อตัวอักษรd
ถูกตี หากเราต้องทำเครื่องหมายลูกบิดประตูเพลิงด้วยF
ผลจะเป็น:
D D D D
F
D D
รายละเอียด
โปรแกรมของคุณจะรับอินพุตสองช่อง:
[a-z0-9]+
สตริงที่ตรงกับรูปแบบ- แผนที่บ้าน นี่อาจเป็นสตริงรายการของสตริงหรือสิ่งที่เทียบเท่า
คุณต้องผ่านตัวอักษรแต่ละตัวของสตริงและเปิดลูกบิดประตูที่เกี่ยวข้องบนไฟ (เปลี่ยนจดหมายเป็นF
) หากลูกบิดประตูที่ใกล้ที่สุดอยู่ในไฟให้ปล่อยทิ้งไว้ตามที่เป็น หากมีลูกบิดมากกว่าหนึ่งอันที่สามารถจุดไฟโดยใช้วิธีนี้คุณสามารถส่องแสงได้ตามต้องการ
หลังจากประมวลผลสตริงทั้งหมดในลักษณะนี้คุณต้องพิมพ์แผนผังบ้านที่ได้
รหัสกอล์ฟโปรแกรมที่สั้นที่สุดชนะ ช่องโหว่มาตรฐานถูกแบนเหมือนปกติ
ตัวอย่าง
สตริง:
helloworld123
แผนที่บ้าน:
D D D D
D
D D
ผลลัพธ์ที่เป็นไปได้:
F F F D
F
D F
หรือ:
F D F D
F
D F
หรือ:
F F D D
F
F F
หรือ:
F D D D
F
F F
แก้ไข:เอ่อ ... มีเหตุผลที่ฉันมีหนึ่งคำตอบแม้จะมีความโปรดปราน +50? หากคุณพบเส้นทางที่ซับซ้อน / คลุมเครือฉันจะดีใจถ้าคุณโพสต์ในความคิดเห็นหรืออะไร ... หรือว่าฉันกำลังทำอะไรผิด ...
แก้ไข 2:เงินรางวัลจะหมดอายุในหนึ่งวัน! โพสต์อย่างอื่น! โปรด! โปรด!!!! :(
d
coords (2, 6) และไม่ใช่ (2, 2) 2) เหตุใดตัวอย่างจึงมีคำตอบที่เป็นไปได้มากมาย 3) เมื่อคุณอธิบายว่าสิ่งที่จะสว่างไฟทำไมคุณยังพูดคุยเกี่ยวกับd
? ทำไมไม่พูดตรงๆว่าการกดa
จะทำให้บางบ้านติดไฟ ไม่d
ทำมันเกินไป?