编写一个程序或函数,使其接受一个矩形文本网格,其中每个单元格为an A
或a B
。所有A
单元将形成简单连接的形状,即它们将全部正交连接而没有孔(对角相邻的字母不算作已连接)。同样,所有B
单元将形成另一个简单连接的形状。网格将始终包含至少一个A
和至少一个B
。
想象一下,网格实际上是两个块状的薄塑料片,由A
和B
部分表示。如果将它们平放在桌子上,是否可以将两部分滑开同时将它们完全放在桌子上?
如果可以通过简单地将两个和形状分开来打印或返回真实值。如果不是,请打印或返回伪造的值。A
B
例如,输入
AAA
ABB
AAA
是正确的,因为该BB
部分可以向右滑动,将其与分开A
:
AAA
A BB
AAA
但是,输入
AAAA
ABBA
ABAA
是虚假的,因为无法将A
和和B
部分滑开而又不会重叠。
以字节为单位的最短代码获胜。如果需要,可以使用任意两个可分开打印的ASCII字符代替A
和B
。
真实示例(用空行分隔)
BBB
BAA
BBB
BA
A
B
AB
AB
AAA
BBB
AAAAB
ABBBB
ABBA
ABBA
AAAA
AAAAAABBBBBBBBB
AABBBBBBBBBBBBB
AAAAAAAAAABBBBB
AABBBBBBBBBBBBB
AAAAAAAAAAAAAAB
AAAAAAAAAAAA
ABABABABABAB
BBBBBBBBBBBB
BAAAAABB
BBAAABBB
BBBABBBB
BBBABBBB
BBBABBBB
BBBBBBBB
BBBBBBBB
AAA
BAA
AAA
虚假的例子
BBBB
BAAB
BABB
BBBB
BAAB
AABB
BBBBBBB
BBBBBAB
AAAAAAB
BBBBBBB
BAAA
BABA
BBBA
AABA
AAAA
AAAAAAA
ABBBBBA
AAAAABA
BBBBBBA
BAAAAABB
BBAAABBB
BBBABBBB
BBBABBBB
BBBAABBB
BBBBBBBB
BBBBBBBB
AAA
ABA
BBA
ABA
AAA