チャレンジ
図形のグラフィカルな入力が与えられたら、その穴の数を決定します。
重複しない
この質問は、カウントアイランドの重複としてマークされました。このチャレンジは、カウントアイランドチャレンジとは異なると考えています。なぜなら、このチャレンジでは、国境に接するブロックを排除する方法を理解する必要があるからです。
入力
入力は、複数行の文字列、文字列の配列、または文字配列の配列のいずれかの入力の2D形式として与えられます。これは形状を表します。形状は、エッジで接続された1つのピースのみであることが保証されています。入力方法を指定してください。
出力
出力は、形状にいくつの穴があるかを示す単一の整数です。末尾の改行は許可されますが、他の先頭または末尾の空白は許可されません。つまり、出力は正規表現と一致する必要があります^\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月4日までに最低スコアの提出物になります。
###|# #|##
テストケースとして追加できますか?それは0
正しいはずですよね?