写一个程序或函数,它在一个4×4栅格的文本组成的正好是4 A
的,4 B
'S,4 C
's和4 D
的,如:
ACDC
BBCA
BADD
ABCD
所述ABCD
的可以是任何布置,但总是会有各自的4。您可以假定输入有效。如果需要,您还可以假定它具有尾随换行符和/或它按阅读顺序排成一行,例如ACDCBBCABADDABCD
。如果需要,您也可以分别ABCD
用0123
或替换字符1234
(仅此而已)。
如果文本网格具有任何形式的反射对称或旋转对称,则输出真实值。特别:
如果有一条中心水平对称线。例如
BACD BACD BACD \___ bottom mirrors top BACD /
如果有一条中心垂直对称线。例如
BCCB DAAD CAAC BDDB \/___ right mirrors left
如果有对角线对称线(在任一方向上)。例如
___ diagonally mirrored / ABDC BACD DCAB CDBA \___ diagonally mirrored
如果存在90°旋转对称性。例如
BDAB ACCD same if rotated 90 degrees (or 180 or 270) DCCA BADB
如果存在180°旋转对称性。例如
DBCA BDCA same if rotated 180 degrees ACDB ACBD
(请注意,此处不涉及平移对称性。)
如果网格不具有上述对称性之一,则输出虚假值。例如第一个示例网格。
以字节为单位的最短代码获胜。