Défi
Étant donné l'entrée graphique d'une forme, déterminez le nombre de trous qu'il contient.
Pas de doublon
Cette question a été marquée comme un double possible des îles Count . Je crois que ce défi est différent du défi de Count Island parce que dans celui-ci, vous devez comprendre comment éliminer les blocs qui touchent la frontière.
Contribution
L'entrée sera donnée sous la forme d'une forme d'entrée 2D, soit une chaîne multiligne, un tableau de chaînes ou un tableau de tableaux de caractères. Cela représente la forme. La forme est garantie d'être en une seule pièce, reliée par le bord. Veuillez spécifier comment vous souhaitez que les données soient prises.
Production
La sortie est un entier unique indiquant le nombre de trous dans la forme. Une nouvelle ligne de fin est autorisée, mais aucun autre espace de début ou de fin. En d'autres termes, la sortie doit correspondre à l'expression régulière ^\d+\n?$
.
Qu'est-ce qu'un trou?
Ce sont des trous simples:
####
# #
# #
####
####
# #
# ##
###
#####
# # #
# #
#####
Ce ne sont pas des trous:
########
########
# ####
# ####
# ######
#
########
###
#
###
##########
#
# ########
# # #
# # #### #
# # ## #
# ###### #
# #
##########
À peu près, si l'écart rejoint le bord extérieur, ce n'est pas un trou.
Cas de test
#####
# # # -> 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)
###
Vous pouvez utiliser n'importe quel caractère à la place du «#» et à la place des espaces.
Critères de notation des objectifs
Le score est donné comme le nombre d'octets dans votre programme.
Gagnant
Le gagnant sera la soumission avec le score le plus bas, avant le 4 avril.
###|# #|##
comme cas de test? Cela devrait être 0
, non?