チャレンジ
文字の正方行列(1バイトの印刷可能なASCII文字)を指定すると、行列の各「リング」を反対方向に回転させます。
例を見てみましょう:
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
次に、次のように、最も外側のリングが時計回りに90度回転します。
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
2番目のリングは反時計回りに90度回転します。
7 8 9 9 E J
C E => 8 I
H I J 7 C H
最後のリングは時計回りに90度回転しますが、1つの数字(この例では文字)であるため、実際には影響を受けません。
最終結果は次のとおりです。
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
マトリックスの辺の長さが偶数の場合、最も内側のリングは2x2の正方形になり、回転する必要があります。
入力
妥当な標準形式のリストのリスト。たとえば、改行で区切られたスペースで区切られた文字列またはスペースで区切られた文字列のリストは受け入れられますが、マトリックスを囲むリングとしての値のリストは受け入れられません。文字は必ずしも一意ではありません。
出力
妥当な標準形式のリストのリスト。入力と同じルール。
テストケース
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
クレジット
各要素を反時計回りに1ポジション(90度ではなく)回転させる、関連する課題に大きく触発されました。