ลองนึกภาพอาร์เรย์แบบสองมิติของค่าบูลีนที่ 0s เป็นตัวแทนของสี่เหลี่ยมของหญ้าบนที่ดินรูปสี่เหลี่ยมผืนผ้าและ 1s เป็นตัวแทนของรั้ว
เขียนฟังก์ชั่นที่ยอมรับอาร์เรย์ 2D เป็นอินพุตและกำหนดว่าคุณสามารถเดินทางจากพื้นที่หนึ่งไปยังพื้นที่หญ้าอื่น ๆ โดยใช้การเคลื่อนไหวแบบทิศเหนือ / ตะวันออก / ตะวันตก / ใต้โดยไม่ต้องวิ่งเข้าไปในรั้ว
หากพื้นที่ใด ๆ ของหญ้าในอาเรย์นั้นถูกล้อมรอบด้วยรั้ว (หมายความว่าคุณไม่สามารถเดินทาง N / E / W / S เพื่อไปยังพื้นที่อื่น ๆ ของหญ้าในอาเรย์) ฟังก์ชั่นควรกลับเท็จ ไม่เช่นนั้นควรกลับมาจริง
ด้านล่างคือตัวอย่างอาร์เรย์สองชุดที่คุณสามารถใช้เป็นอินพุตได้แม้ว่าฟังก์ชันของคุณจะสามารถจัดการได้ไม่เพียง แต่เหล่านี้เท่านั้น แต่ยังมีค่าบูลีนสองมิติ:
0 0 0 0 0
0 1 0 0 0
0 1 1 1 1
0 0 0 0 0
0 0 0 1 1
(should return true)
0 1 0 1 0
0 1 1 0 0
0 0 0 0 0
0 0 0 1 0
1 1 1 1 0
(should return false, since the middle 0 in the top row is fully enclosed)
รหัสการทำงานที่สั้นที่สุดชนะ ฉันจะเลือกผู้ชนะหลังจากผ่านไปหนึ่งสัปดาห์หรือไม่มีการส่งผลงานใหม่ภายใน 24 ชั่วโมง
1 1 1; 1 0 1; 1 1 1? มีหนึ่งเซลล์หญ้าอยู่ตรงกลาง สายตาเซลล์ของหญ้าที่อยู่ตรงกลางนั้นล้อมรอบด้วยรั้ว แต่โดยความหมายของคุณมันไม่ได้