挑战说明
让我们将其称为二维矩形数组(意味着其每个子数组具有相同的长度),即grid。网格的每个单元都是空白或边框。在字符网格中,空白由单个空格表示;其他任何字符均视为边框。样本网格(为了便于阅读而添加了+
,,|
和-
,它们不属于网格):
+----+
| |
| |
| |
| |
| |
+----+ 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)
(笛卡尔)系统和/或非零索引坐标,请在提交中指定。如果您不知道从哪里开始,请查看Wikipedia中有关洪水填充的文章
请记住,这是一个 代码高尔夫球 挑战,所以让您的代码越短越好!