Вызов
По графическому вводу фигуры определите, сколько в ней отверстий.
Не дублировать
Этот вопрос был отмечен как возможный дубликат Графских островов . Я считаю, что эта задача отличается от задачи на Острове Графов, потому что в этой вы должны выяснить, как устранить блоки, которые касаются границы.
вход
Входные данные будут представлены в виде двухмерной формы ввода: многострочная строка, массив строк или массив символьных массивов. Это представляет форму. Форма гарантированно будет только в одной части, соединенной ребром. Пожалуйста, укажите, как вы хотите, чтобы ввод был принят.
Выход
Выход - одно целое число, указывающее, сколько отверстий в форме. Разрешающий символ новой строки разрешен, но нет других начальных или конечных пробелов. Другими словами, выходные данные должны соответствовать регулярному выражению ^\d+\n?$
.
Что такое дыра?
Это одиночные отверстия:
####
# #
# #
####
####
# #
# ##
###
#####
# # #
# #
#####
Это не дыры:
########
########
# ####
# ####
# ######
#
########
###
#
###
##########
#
# ########
# # #
# # #### #
# # ## #
# ###### #
# #
##########
В значительной степени, если этот промежуток соединяется с внешним краем, это не дыра.
Контрольные примеры
#####
# # # -> 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)
###
Вы можете использовать любой символ вместо «#» и вместо пробелов.
Критерии объективной оценки
Оценка дается как количество байтов в вашей программе.
выигрыш
Победитель будет представлен с самым низким счетом, к 4 апреля.
###|# #|##
в качестве теста? Это должно быть 0
, верно?