Thử thách
Đưa ra một đầu vào đồ họa của một hình dạng, xác định có bao nhiêu lỗ trong đó.
Không trùng lặp
Câu hỏi này được đánh dấu là một bản sao có thể có của Quần đảo Count . Tôi tin rằng thử thách này khác với thử thách Đảo Count bởi vì trong thử thách này, bạn phải tìm ra cách loại bỏ các khối chạm vào đường viền.
Đầu vào
Đầu vào sẽ được cung cấp dưới dạng một số dạng đầu vào 2D, hoặc một chuỗi nhiều dòng, một chuỗi các chuỗi hoặc một mảng các mảng ký tự. Điều này đại diện cho hình dạng. Hình dạng được đảm bảo chỉ trong một mảnh, được kết nối bởi cạnh. Vui lòng xác định cách bạn muốn đầu vào được thực hiện.
Đầu ra
Đầu ra là một số nguyên duy nhất cho biết có bao nhiêu lỗ trong hình. Một dòng mới theo dõi được cho phép, nhưng không có khoảng trắng hàng đầu hoặc dấu khác. Nói cách khác, đầu ra phải khớp với biểu thức chính quy ^\d+\n?$
.
Một cái lỗ là gì?
Đây là những lỗ đơn:
####
# #
# #
####
####
# #
# ##
###
#####
# # #
# #
#####
Đây không phải là lỗ:
########
########
# ####
# ####
# ######
#
########
###
#
###
##########
#
# ########
# # #
# # #### #
# # ## #
# ###### #
# #
##########
Khá nhiều, nếu nó khoảng cách tham gia cạnh bên ngoài, nó không phải là một lỗ.
Các trường hợp thử nghiệm
#####
# # # -> 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)
###
Bạn có thể sử dụng bất kỳ ký tự nào thay cho '#' và thay cho các khoảng trắng.
Tiêu chí chấm điểm khách quan
Điểm số được đưa ra là số byte trong chương trình của bạn.
Chiến thắng
Người chiến thắng sẽ là người nộp bài với số điểm thấp nhất, trước ngày 4 tháng Tư.
###|# #|##
như một trường hợp thử nghiệm? Điều đó nên 0
, phải không?