Descrição do Desafio
Vamos chamar uma matriz retangular bidimensional (ou seja, cada subarray tem o mesmo comprimento), uma grade . Cada unidade de uma grade é um espaço vazio ou uma borda . Em uma grade de caracteres, o espaço vazio é representado por um único espaço em branco; qualquer outro caractere é tratado como uma borda. Grelhas de amostra ( +
', |
' e -
'adicionadas para facilitar a leitura - elas não fazem parte da grade ):
+----+
| |
| |
| |
| |
| |
+----+ an empty 4x5 grid
+------+
| |
| # |
| # |
+------+ a 6x3 grid with 2 borders
+----------+
| |
| |
| ##### |
| # # |
| ## # <------ enclosed area
| # # |
| ###### |
| |
+----------+ a 10x8 grid with an enclosed area
Dada uma grade 2D e um par de coordenadas, preencha a área fechada ao redor do ponto representado pelas coordenadas.
Amostras de entradas / saídas
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|
| | | |
| | | |
+----------------+ +----------------+
Notas
Uma grade vazia é considerada fechada, ou seja, as bordas também estão localizadas implicitamente ao longo das bordas da grade (ver exemplos 1. e 5.),
Um canto de uma área fechada não precisa ser em forma de L. As duas áreas a seguir são, portanto, equivalentes:
#### ##
# # # #
# # == # #
# # # #
#### ##
Se uma unidade sob as coordenadas for uma borda, você poderá deixar a grade inalterada (como no exemplo 4.) ou tratá-la como um espaço vazio,
Você pode escolher qualquer caractere para preenchimento / espaço vazio, desde que inclua essas informações no envio,
Se o uso de um tipo que não seja mais
char
adequado aos seus objetivos, você poderá usarints
(0
para espaço vazio,1
para borda) oubooleans
(true
efalse
respectivamente) ou qualquer outro tipo - apenas inclua essas informações em seu envio,As coordenadas usadas nos exemplos acima são
(row, column)
coordenadas com índice 0 , pois é mais conveniente para uma matriz bidimensional. Se você deseja usar o(column, row)
sistema (cartesiano) e / ou coordenadas não indexadas a 0, especifique-o no seu envio.Se você não sabe por onde começar, consulte o artigo da Wikipedia sobre preenchimento de inundação
Lembre-se de que este é um desafio do código-golfe , portanto, faça o seu código o mais curto possível!