Desafio
Dada a entrada gráfica de uma forma, determine quantos furos existem nela.
Não duplicado
Esta questão foi marcada como uma possível duplicata das Ilhas Conde . Acredito que esse desafio seja diferente do desafio de Count Island porque, neste, você precisa descobrir como eliminar os blocos que tocam a fronteira.
Entrada
A entrada será fornecida como uma forma de entrada 2D, como uma cadeia de linhas múltiplas, uma matriz de cadeias ou uma matriz de matrizes de caracteres. Isso representa a forma. A forma é garantida em apenas uma peça, conectada pela borda. Especifique como deseja que a entrada seja recebida.
Resultado
A saída é um único inteiro informando quantos furos existem na forma. Uma nova linha à direita é permitida, mas nenhum outro espaço em branco à esquerda ou à direita. Em outras palavras, a saída deve corresponder à expressão regular ^\d+\n?$
.
O que é um buraco?
Estes são orifícios únicos:
####
# #
# #
####
####
# #
# ##
###
#####
# # #
# #
#####
Estes não são buracos:
########
########
# ####
# ####
# ######
#
########
###
#
###
##########
#
# ########
# # #
# # #### #
# # ## #
# ###### #
# #
##########
Praticamente, se a lacuna se unir à borda externa, não é um buraco.
Casos de teste
#####
# # # -> 2
#####
#####
#
# ### -> 1
# # #
#####
####
## # -> 1 (things are connected by edges)
# ##
####
###
### -> 0 (You must handle shapes with no holes, but input will always contain at least one filled space)
###
Você pode usar qualquer caractere no lugar do '#' e no lugar dos espaços.
Critérios de Pontuação Objetiva
A pontuação é dada como o número de bytes no seu programa.
Ganhando
O vencedor será a finalização com a menor pontuação, até o dia 4 de abril.
###|# #|##
como um caso de teste? Isso deveria ser 0
, certo?