Скажімо, у мене є така (2D) матриця:
[[1, 2, 3, 4 ],
[5, 6, 7, 8 ],
[9, 10, 11, 12],
[13, 14, 15, 16]]
Обертайте матрицю проти годинникової стрілки R
(не з кроком 90 градусів, кожен раз на 1 число),
1 2 3 4 2 3 4 8 3 4 8 12
5 6 7 8 --> 1 7 11 12 --> 2 11 10 16
9 10 11 12 5 6 10 16 1 7 6 15
13 14 15 16 9 13 14 15 5 9 13 14
Виконаний приклад:
Вхід:
2
[[1, 2, 3, 4 ],
[5, 6, 7, 8 ],
[9, 10, 11, 12],
[13, 14, 15, 16]]
Вихід:
[[3, 4, 8, 12],
[2, 11, 10, 16],
[1, 7, 6, 15],
[5, 9, 13, 14]]
(дивні пробіли - це вирівнювання чисел у приємних стовпцях)
Зовнішнє "кільце" матриці обертається 2 проти годинникової стрілки, а внутрішнє праве обертається 2 також. У цій матриці є лише два кільця.
Приклад з 1 "кільцем":
2
[[1, 2],
[3, 4],
[5, 6]]
Потрібно вивести:
[[4, 6],
[2, 5],
[1, 3]]
Ваше завдання полягає в тому, щоб взяти матрицю і ціле число R
і вивести перекладену версію після R
обертання.
Обертання матриці 4x5 представлене наступним малюнком:
Обмеження:
2 ≤ M, N ≤ 100
, де M і N - розміри матриці. Гарантується, що мінімум M і N будуть парними.1 ≤ R ≤ 80
, де r - кількість обертів.- Матриця завжди буде містити лише додатні цілі числа.
- Цінності не завжди відрізняються.
- Вхід завжди повинен бути як двовимірний масив (якщо ви не можете прийняти вхід виконання як 2D масив, тоді вам просто потрібно знайти інший спосіб отримати введення).
Ще один тестовий випадок із невідмінними значеннями:
1
[[1, 1],
[2, 2],
[3, 3]]
Виходи:
[[1, 2],
[1, 3],
[2, 3]]
Це код-гольф , тому найкоротша відповідь виграє!
[[3, 4, 8, 12], [2, 11, 10, 16], [1, 7, 6, 16], [5, 9, 13, 14]]
16 раптово дублюється я припускаю , що це повинно бути: [[3, 4, 8, 12], [2, 11, 10, 16], [1, 7, 6, 15], [5, 9, 13, 14]]
?