Schreiben Sie ein Programm oder eine Funktion, die ein 4 × 4-Textraster enthält, das aus genau 4 A
, 4 B
, 4 C
und 4 besteht D
, wie z.
ACDC
BBCA
BADD
ABCD
Die ABCD
kö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 ABCD
durch 0123
oder 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 left
Wenn es eine diagonale Symmetrielinie gibt (in beide Richtungen). z.B
___ diagonally mirrored / ABDC BACD DCAB CDBA \___ diagonally mirrored
Bei 90 ° Rotationssymmetrie. z.B
BDAB ACCD same if rotated 90 degrees (or 180 or 270) DCCA BADB
Bei 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.