Sfida
Data una matrice quadrata di caratteri (caratteri ASCII stampabili a byte singolo), ruota ciascun "anello" della matrice in direzioni opposte.
Facciamo un esempio:
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
Quindi, l'anello più esterno viene ruotato di 90 gradi in senso orario, in questo modo:
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
Il secondo anello viene ruotato in senso antiorario di 90 gradi:
7 8 9 9 E J
C E => 8 I
H I J 7 C H
L'anello finale viene ruotato di 90 gradi in senso orario, ma poiché si tratta di un singolo numero (lettera nel nostro esempio), non è realmente interessato.
Il risultato finale è:
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
Se la matrice ha una lunghezza laterale uniforme, l'anello più interno sarà un quadrato di 2x2 e dovrebbe comunque essere ruotato.
Ingresso
Un elenco di elenchi in qualsiasi formato standard ragionevole. Ad esempio, una stringa delimitata da spazi delimitata da newline o un elenco di stringhe delimitate da spazi è accettabile, ma un elenco di valori come anelli attorno alla matrice non è accettabile. I personaggi non sono necessariamente unici.
Produzione
Un elenco di elenchi in qualsiasi formato standard ragionevole. Stesse regole dell'input.
Casi test
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
Crediti
Fortemente ispirato da una sfida correlata che ruota ciascun elemento in senso antiorario di una posizione (non di 90 gradi).