Tantangan
Diberikan input grafis dari suatu bentuk, tentukan berapa banyak lubang yang ada di dalamnya.
Tidak Gandakan
Pertanyaan ini ditandai sebagai duplikat yang mungkin dari Pulau Count . Saya percaya tantangan ini berbeda dari tantangan Count Island karena dalam tantangan ini, Anda harus memikirkan cara menghilangkan blok yang menyentuh perbatasan.
Memasukkan
Input akan diberikan sebagai bentuk input 2D, baik string multiline, array string, atau array array karakter. Ini mewakili bentuk. Bentuknya dijamin hanya akan menjadi satu bagian, dihubungkan dengan ujung. Silakan tentukan bagaimana Anda ingin input diambil.
Keluaran
Output adalah bilangan bulat tunggal yang menyatakan berapa banyak lubang yang ada dalam bentuk. Sebuah trailing newline diizinkan, tetapi tidak ada spasi putih terdepan atau tambahan lainnya. Dengan kata lain, output harus cocok dengan ekspresi reguler ^\d+\n?$
.
Apa itu lubang?
Ini adalah lubang tunggal:
####
# #
# #
####
####
# #
# ##
###
#####
# # #
# #
#####
Ini bukan lubang:
########
########
# ####
# ####
# ######
#
########
###
#
###
##########
#
# ########
# # #
# # #### #
# # ## #
# ###### #
# #
##########
Cukup banyak, jika celah bergabung dengan tepi luar, itu bukan lubang.
Uji kasus
#####
# # # -> 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)
###
Anda dapat menggunakan karakter apa pun sebagai ganti '#', dan sebagai ganti spasi.
Kriteria Penilaian Objektif
Skor diberikan sebagai jumlah byte dalam program Anda.
Kemenangan
Pemenang akan menjadi pengajuan dengan skor terendah, pada 4 April.
###|# #|##
sebagai test case? Seharusnya begitu 0
, kan?