编写一个包含0
“ s”和1
“ s ”的多行字符串的程序或函数。字符串中不会再有其他字符,并且字符串始终将是矩形的(所有行将具有相同数量的字符),尺寸小至1×1,但否则可以任意排列0
'和1
'。
您可以假设该字符串具有可选的尾随换行符,并且如果需要,可以使用任意两个不同的可打印ASCII字符代替0
和1
。
打印或返回truthy值,如果所有的的路径连接的区域都0
的和1
的中的字符串是实心矩形,否则输出falsy值。
甲路径连接区域的0
“是,从任何一个S是指0
在该区域中,所有其它0
的可以通过仅向上移动达到,下,左,右等0
的(和不倾斜地移动,不移动到任何1
和不会超出字符串范围)。同样的想法适用于1
路径连接区域。
甲实心矩形的0
的手段的矩形的整个区域被填充0
的和没有1
的。同样的想法适用于1
实心矩形。
以字节为单位的最短代码获胜。抢七是较早的答案。
(请注意,字符串不会与环形边界条件一起环绕。)
例子
1)此输入字符串具有3个路径连接的区域(2个用于0
,1个用于1
)。但是,只有右下角的00
区域是一个实心矩形,因此输出将是虚假的。
0011
0111
0100
2)该输入字符串具有4个路径连接的区域(2两者0
和1
)。它们都是实心矩形,因此输出将是真实的。
0011
0011
1100
3)此输入具有2条路径连接的区域,但其中只有一个是实心矩形,因此输出将是虚假的。
00000000
01111110
00000000
4)此输入只有1条路径连接的区域,并且是一个实心矩形,因此输出是真实的。
11111111
11111111
11111111
测试用例
T
输入字符串下方的A 表示真实,F
表示虚假。
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