0
および1
の複数行の文字列を取り込むプログラムまたは関数を作成します。文字列には他の文字は含まれず、文字列は常に長方形(すべての行に同じ数の文字が含まれます)で、寸法は1×1ですが、それ以外の場合は0
'と1
'は任意に配置できます。
あなたは、文字列は、オプションの末尾の改行を持っていると仮定して、必要に応じて、あなたは、任意の2つの異なる使用することができ、印刷可能なASCII文字の代わりに文字を0
して1
。
印刷または戻りtruthy値を場合、すべてのパスが接続されているの領域を両方0
のと1
のある文字列内の固体の長方形、他の出力falsy値。
パス接続領域の0
「いずれかからのS手段0
領域内の、すべての他0
のだけ上方に移動することによって到達することができるが、上下、左右他方へ0
の(としない、斜めに移動しない任意に移動し1
、そして文字列の境界の外側に移動しない)。同じ考え方が1
パス接続されたリージョンにも適用されます。
の実線の長方形は0
、長方形の領域全体がで塗りつぶされてい0
ないことを意味します1
。同じ考えが塗りつぶされた1
長方形にも当てはまります。
バイト単位の最短コードが優先されます。Tiebreakerは以前の回答です。
(ストリングはトロイダル境界条件でラップアラウンドしないことに注意してください。)
例
1)この入力文字列には、3つのパス接続領域があります(2に対して0
1、1に対して1 1
)。00
ただし、右下の領域のみが塗りつぶされた長方形であるため、出力は偽になります。
0011
0111
0100
2)この入力文字列には、4つのパス接続領域があります(両方0
とに2つ1
)。それらはすべて実線の長方形であるため、出力は真実です。
0011
0011
1100
3)この入力には2つのパス接続領域がありますが、そのうちの1つだけが塗りつぶされた長方形であるため、出力は偽になります。
00000000
01111110
00000000
4)この入力には1つのパス接続領域のみがあり、単純な長方形であるため、出力は真実です。
11111111
11111111
11111111
テストケース
T
ただ、入力文字列の手段truthy以下、F
手段がfalsy。
0
T
1
T
00
T
01
T
10
T
11
T
0000000
T
1111111
T
011100100100101100110100100100101010100011100101
T
00
11
T
01
10
T
01
11
F
00
01
F
11
11
T
110
100
F
111
000
T
111
101
111
F
101
010
101
T
1101
0010
1101
0010
T
1101
0010
1111
0010
F
0011
0111
0100
F
0011
0011
1100
T
00000000
01111110
00000000
F
11111111
11111111
11111111
T
0000001111
0000001111
T
0000001111
0000011111
F
0000001111
1000001111
F
1000001111
1000001111
T
1110100110101010110100010111011101000101111
1010100100101010100100010101010101100101000
1110100110010010110101010111010101010101011
1010100100101010010101010110010101001101001
1010110110101010110111110101011101000101111
F