Sfida
Dato un input grafico di una forma, determina quanti buchi ci sono in essa.
Non duplicato
Questa domanda è stata contrassegnata come possibile duplicato di Count Islands . Credo che questa sfida sia diversa dalla sfida Count Island perché in questa devi capire come eliminare i blocchi che toccano il confine.
Ingresso
L'input verrà fornito come una forma 2D di input, una stringa multilinea, una matrice di stringhe o una matrice di array di caratteri. Questo rappresenta la forma. La forma è garantita in un solo pezzo, collegata da un bordo. Si prega di specificare come si desidera ricevere l'input.
Produzione
L'output è un singolo intero che indica quanti buchi ci sono nella forma. È consentita una nuova riga finale, ma nessun altro spazio bianco iniziale o finale. In altre parole, l'output deve corrispondere all'espressione regolare^\d+\n?$
.
Che cos'è un buco?
Questi sono fori singoli:
####
# #
# #
####
####
# #
# ##
###
#####
# # #
# #
#####
Questi non sono buchi:
########
########
# ####
# ####
# ######
#
########
###
#
###
##########
#
# ########
# # #
# # #### #
# # ## #
# ###### #
# #
##########
Praticamente, se lo spazio si unisce al bordo esterno, non è un buco.
Casi 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)
###
Puoi usare qualsiasi carattere al posto del '#' e al posto degli spazi.
Criteri di punteggio obiettivo
Il punteggio viene assegnato come numero di byte nel programma.
vincente
Il vincitore sarà l'invio con il punteggio più basso, entro il 4 aprile.
###|# #|##
come test case? Dovrebbe essere 0
vero?