คำอธิบายการท้าทาย
ขอเรียกสองมิติอาร์เรย์สี่เหลี่ยม (หมายถึงทุก subarray ของมันมีความยาวเดียวกัน) ซึ่งเป็นตาราง หน่วยของตารางทุกคนเป็นทั้งพื้นที่ว่างหรือชายแดน ในตารางของอักขระพื้นที่ว่างจะถูกแทนด้วยช่องว่างเดียว อักขระอื่นใดถือเป็นเส้นขอบ ตัวอย่างกริด ( +
's, |
' s และ-
's เพิ่มเพื่อให้อ่านได้ - มันไม่ได้เป็นส่วนหนึ่งของกริด ):
+----+
| |
| |
| |
| |
| |
+----+ an empty 4x5 grid
+------+
| |
| # |
| # |
+------+ a 6x3 grid with 2 borders
+----------+
| |
| |
| ##### |
| # # |
| ## # <------ enclosed area
| # # |
| ###### |
| |
+----------+ a 10x8 grid with an enclosed area
ให้ตาราง 2D และพิกัดหนึ่งคู่เติมพื้นที่ล้อมรอบจุดที่แสดงโดยพิกัด
ตัวอย่างอินพุต / เอาท์พุต
1)
0 0
+----------+ +----------+
| | |XXXXXXXXXX|
| | -> |XXXXXXXXXX|
| | |XXXXXXXXXX|
+----------+ +----------+
2)
6 5
+-----------------+ +-----------------+
| | | |
| | | |
| ######## | | ######## |
| # # | | #XXXXXXX# |
| # #### | | #XXXX#### |
| # # | | #XXXX# |
| # # | -> | #XXXX# |
| # # | | #XXXX# |
| #### | | #### |
| | | |
| | | |
+-----------------+ +-----------------+
3)
4 6
+-----------------+ +-----------------+
| | |XXXXXXXXXXXXXXXXX|
| #### | |XXXX####XXXXXXXXX|
| # # | -> |XXX# #XXXXXXXX|
| #### | |XXXX####XXXXXXXXX|
| | |XXXXXXXXXXXXXXXXX|
+-----------------+ +-----------------+
4)
4 5
+-----------------+ +-----------------+ +-----------------+
| | | | | |
| | | | | |
| #### | | #### | | XXXX |
| #### | -> | #### | or | XXXX |
| #### | | #### | | XXXX |
| | | | | |
+-----------------+ +-----------------+ +-----------------+
5)
2 6
+----------------+ +----------------+
| | |XXXXXXXXXXXXXXXX|
| | |XXXXXXXXXXXXXXXX|
| | |XXXXXXXXXXXXXXXX|
| | -> |XXXXXXXXXXXXXXXX|
| | |XXXXXXXXXXXXXXXX|
|BBBBBBBBBBBBBBBB| |BBBBBBBBBBBBBBBB|
| | | |
| | | |
+----------------+ +----------------+
หมายเหตุ
กริดที่ว่างเปล่านั้นถูกพิจารณาว่ามีการล้อมรอบนั่นคือเส้นขอบจะถูกวางไว้ตามขอบของกริดเช่นกัน (ดูตัวอย่างที่ 1 และ 5)
มุมของพื้นที่ปิดล้อมไม่จำเป็นต้องเป็นรูปตัว L ดังนั้นสองพื้นที่ต่อไปนี้จึงเทียบเท่ากัน:
#### ##
# # # #
# # == # #
# # # #
#### ##
หากหน่วยใต้พิกัดเป็นเส้นขอบคุณสามารถปล่อยให้กริดไม่เปลี่ยนแปลง (เช่นในตัวอย่างที่ 4) หรือถือเป็นพื้นที่ว่าง
คุณสามารถเลือกตัวละครใด ๆ สำหรับฟิลเลอร์ / พื้นที่ว่างตราบใดที่คุณรวมข้อมูลนี้ในการส่ง
หากใช้ประเภทอื่นที่
char
เหมาะสมกับวัตถุประสงค์ของคุณดีกว่าคุณสามารถใช้ints
(0
สำหรับพื้นที่ว่างเปล่า1
สำหรับเส้นขอบ) หรือbooleans
(true
และfalse
ตามลำดับ) หรือประเภทอื่น ๆ - เพียงตรวจสอบให้แน่ใจว่าได้รวมข้อมูลนี้ไว้ในการส่งของคุณแล้วพิกัดที่ใช้ในตัวอย่างด้านบนเป็น
(row, column)
พิกัด0 ที่จัดทำดัชนีเนื่องจากสะดวกกว่าสำหรับอาร์เรย์สองมิติ หากคุณต้องการใช้ระบบ(column, row)
(คาร์ทีเซียน) และ / หรือพิกัดที่ไม่ใช่ดัชนี 0 ให้ระบุในการส่งของคุณหากคุณไม่ทราบว่าจะเริ่มจากที่ใดลองอ่านบทความ Wikipedia เกี่ยวกับการเติมน้ำท่วม
จำไว้ว่านี่คือ รหัสกอล์ฟ ท้าทายทำรหัสของคุณให้สั้นที่สุด!