Schreiben Sie ein Programm oder eine Funktion, die ein 4 × 4-Textraster enthält, das aus genau 4 A, 4 B, 4 Cund 4 besteht D, wie z.
ACDC
BBCA
BADD
ABCD
Die ABCDkönnen in jeder Anordnung sein, aber es werden immer 4 von jedem sein. Sie können davon ausgehen, dass die Eingabe gültig ist. Auf Wunsch können Sie auch davon ausgehen, dass es sich um eine nachgestellte Zeile handelt und / oder dass es sich um eine einzelne Zeile in Lesereihenfolge handelt, z ACDCBBCABADDABCD. Falls gewünscht, können Sie die Zeichen auch ABCDdurch 0123oder ersetzen 1234(aber das ist alles).
Geben Sie einen Wahrheitswert aus, wenn das Textgitter irgendeine Form von Reflexions- oder Rotationssymmetrie aufweist. Speziell:
Wenn es eine zentrale horizontale Symmetrielinie gibt. z.B
BACD BACD BACD \___ bottom mirrors top BACD /Wenn es eine zentrale vertikale Symmetrielinie gibt. z.B
BCCB DAAD CAAC BDDB \/___ right mirrors leftWenn es eine diagonale Symmetrielinie gibt (in beide Richtungen). z.B
___ diagonally mirrored / ABDC BACD DCAB CDBA \___ diagonally mirroredBei 90 ° Rotationssymmetrie. z.B
BDAB ACCD same if rotated 90 degrees (or 180 or 270) DCCA BADBBei 180 ° Rotationssymmetrie. z.B
DBCA BDCA same if rotated 180 degrees ACDB ACBD
(Beachten Sie, dass die translatorische Symmetrie hier nicht ins Spiel kommt.)
Geben Sie einen falschen Wert aus, wenn das Raster keine der oben genannten Symmetrien aufweist. zB das allererste Beispielraster.
Der kürzeste Code in Bytes gewinnt.