2015 Determine Whether Matrix Can Be Obtained By Rotation
2015 Determine Whether Matrix Can Be Obtained By Rotation
Determine Whether Matrix Can Be Obtained By Rotation 
Given two n x n binary matrices mat and target, return true* if it is possible to make mat equal to target by rotating mat in 90-degree increments, or false otherwise.*
Example 1:
1
2
3
4
5
**Input:** mat = [[0,1],[1,0]], target = [[1,0],[0,1]]
**Output:** true
**Explanation: **We can rotate mat 90 degrees clockwise to make mat equal target.
Example 2:
1
2
3
4
5
**Input:** mat = [[0,1],[1,1]], target = [[1,0],[0,1]]
**Output:** false
**Explanation:** It is impossible to make mat equal to target by rotating mat.
Example 3:
1
2
3
4
5
**Input:** mat = [[0,0,0],[0,1,0],[1,1,1]], target = [[1,1,1],[0,1,0],[0,0,0]]
**Output:** true
**Explanation: **We can rotate mat 90 degrees clockwise two times to make mat equal target.
Constraints:
1
2
3
4
n == mat.length == target.length
n == mat[i].length == target[i].length
1 <= n <= 10
mat[i][j] and target[i][j] are either 0 or 1.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Solution:
def findRotation(
self, mat: List[List[int]], target: List[List[int]]
) -> bool:
n = len(mat)
# at most 4 rotations
for k in range(4):
# rotation operation
for i in range(n // 2):
for j in range((n + 1) // 2):
(
mat[i][j],
mat[n - 1 - j][i],
mat[n - 1 - i][n - 1 - j],
mat[j][n - 1 - i],
) = (
mat[n - 1 - j][i],
mat[n - 1 - i][n - 1 - j],
mat[j][n - 1 - i],
mat[i][j],
)
if mat == target:
return True
return False
This post is licensed under CC BY 4.0 by the author.


