入力:
NxM
のみ印刷可能なASCII(Unicodeの範囲を含むグリッドまたは複数行の文字列(またはその他の妥当入力フォーマット)[32,126]
)。
出力:
2つの特別なルールを使用して、検索できる同じ文字の閉じたポリゴンの数:
- スペースはワイルドカードであり、任意の文字に(複数回)使用できます
o
、O
、および0
閉じた多角形そのものとしてカウントされ
チャレンジルール:
- 同じ文字(またはスペース)間の(対)対角線接続が閉じたポリゴンを形成するために含まれています。
- 他の文字(ワイルドカードスペースを除く)を超えることはできません。(つまり、以下の最初のテストケース/例では、次の2つの三角形を形成することができない
A
上行くことによってさんをx
斜めに閉じた多角形のために使用されるすべての文字が(水平方向、垂直方向に接続する必要がありますので。)、および/または(反) )。 - ポリゴンは、(単一文字を除く少なくとも3つの文字です
o
、O
、0
)。 - 隣接する文字の線は閉じた多角形ではありません。
- ワイルドカードスペースを除き、同じ文字を複数のポリゴンに使用することはできません。
- ワイルドカードスペースはとしてカウントすることができない
o
、O
または0
。 - 3つ以上のスペースだけでは、閉じたポリゴンを形成できません。常に少なくとも1つの非スペース(および
o
/O
/ 以外0
)文字が必要です。 - 入力は適切な形式にすることができます。文字マトリックス、改行区切り文字列、文字列配列、整数幅を追加した文字配列などを使用できます。
- 入力は常にN x Mの長方形(または正方形)になるため、奇妙な入力形状はありません
- 同じ文字を複数回使用することはできず、閉じたポリゴンをできるだけ多くしたいので、1つの大きなポリゴンの代わりに複数の文字を使用して2つ(またはそれ以上)の閉じたポリゴンを形成することは、当然のことながらカウントの目的です(これもなぜ、閉じた多角形が形成されることで
o
、O
または0
それらは、すでに個別のポリゴンを閉じているので)、カウントされません。 - もちろん、大文字と小文字は個別の文字として数えられます。
一般的なルール:
- これはcode-golfなので、バイト単位の最短の回答が優先されます。
コードゴルフ言語が非コードゴルフ言語で回答を投稿することを思いとどまらせないでください。「あらゆる」プログラミング言語について、可能な限り短い答えを考え出すようにしてください。 - デフォルトのI / Oルールを使用した回答には標準のルールが適用されるため、STDIN / STDOUT、関数/メソッドを適切なパラメーターで使用し、戻り値の型の完全なプログラムを使用できます。あなたの電話。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテスト(TIOなど)のリンクを追加してください。
- また、回答の説明を追加することを強くお勧めします。
例/テストケース:
入力:
AAAw
AxA4
'AoQ
入力:
1822uaslkoo
12*2sl ljoo
a* 0a91)j$*
()*#J9dddj*
*Q#ID dJj!"
*UJD SO&*93
注:
-の下の黄色のものはポリゴンではありません。なぜなら、o
は既に分離されたポリゴンとしてカウントされているためです
-紫と茶色のものは閉じられていません
-赤、灰色、緑、水色は1つ以上の非ポリゴンを使用しています-他の閉じたポリゴンですでに使用されているスペース文字
入力(寸法は2x4
):
3 3
2
入力:
AAAA
AAAA
AAxA
もちろん、ここでは他のポリゴンも可能ですが、3つまでです。ここでは、3
ポリゴンを使用した別の有効な例を示します。
入力:
0QoO
入力:
W w
Ww
最上層のスペースは3つのポリゴンすべてに使用されることに注意してください。以下は、個別に強調表示された3つのポリゴンです。
入力:
W W
WW
出力:3
、前のテストと同じ3つのポリゴンを形成できるため。つまり、2
次の2つのポリゴンではありません。
入力:
abcdQefg
hQiQjQQk
QlQmnopQ
QqrstQQu
QvQQQwxy
QQz0QQQQ
すべてのサンプルポリゴンが凸型のようです。凹型ポリゴンが除外されない限り、1つを含むテストケースを追加することをお勧めします。
—
アーノールド
@Arnauld下部にテストケースを追加しました。それは内部に1回しか行くことがないので、それがあなたの意味するものに対して十分であるかどうかはわかりません。グリッドは、凹型のポリゴンを作成するためにかなり大きくする必要があります。さらに追加する必要がある推奨テストケースがある場合は、お知らせください。
—
Kevin Cruijssen、
@シャギーあなたはちょっと正しいです。私はの形を見て挑戦をしたときは
—
Kevin Cruijssen、
o
、O
、0
個々のポリゴンとしての円であることが、溶液中で、それは多くを追加していない、ことを除いてo
、O
、0
大きなポリゴンを形成する際に避けるべきである、と彼らのために数を追加します。しかし、今それを変更するには遅すぎます。
+1
が、o
s、O
s 、sが特別な大文字小文字を組み合わせ0
てチャレンジに追加するものは本当にわかりません。