Herausforderung
Drehen Sie bei einer quadratischen Zeichenmatrix (druckbare Einzelbyte-ASCII-Zeichen) jeden "Ring" der Matrix in entgegengesetzte Richtungen.
Nehmen wir ein Beispiel:
1 2 3 4 5
6 7 8 9 A
B C D E F
G H I J K
L M N O P
Dann wird der äußerste Ring wie folgt um 90 Grad im Uhrzeigersinn gedreht:
1 2 3 4 5 L G B 6 1
6 A M 2
B F => N 3
G K O 4
L M N O P P K F A 5
Der zweite Ring wird um 90 Grad gegen den Uhrzeigersinn gedreht:
7 8 9 9 E J
C E => 8 I
H I J 7 C H
Der letzte Ring wird um 90 Grad im Uhrzeigersinn gedreht. Da es sich jedoch um eine einzelne Zahl handelt (in unserem Beispiel um einen Buchstaben), ist dies nicht wirklich betroffen.
Das Endergebnis ist:
L G B 6 1
M 9 E J 2
N 8 D I 3
O 7 C H 4
P K F A 5
Wenn die Matrix eine gerade Seitenlänge hat, ist der innerste Ring ein 2x2-Quadrat und sollte immer noch gedreht werden.
Eingang
Eine Liste von Listen in einem angemessenen Standardformat. Beispielsweise ist eine durch Zeilenumbrüche oder Leerzeichen getrennte Zeichenfolge oder eine Liste von durch Leerzeichen getrennten Zeichenfolgen zulässig, eine Liste der Werte als Ringe um die Matrix ist jedoch nicht zulässig. Die Zeichen sind nicht unbedingt eindeutig.
Ausgabe
Eine Liste von Listen in einem angemessenen Standardformat. Gleiche Regeln wie die Eingabe.
Testfälle
1 2 3 7 4 1
4 5 6 => 8 5 2
7 8 9 9 6 3
1 2 3 4 5 6 Y S M G A 1
A B C D E F Z E K Q W 2
G H I J K L => ! D O I V 3
M N O P Q R @ C P J U 4
S T U V W X # B H N T 5
Y Z ! @ # $ $ X R L F 6
Credits
Stark inspiriert von einer ähnlichen Herausforderung , bei der jedes Element um eine Position gegen den Uhrzeigersinn gedreht wird (nicht um 90 Grad).