1886. Determine Whether Matrix Can Be Obtained By Rotation
Description
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:
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:
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:
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:
n == mat.length == target.length
n == mat[i].length == target[i].length
1 <= n <= 10
mat[i][j]
andtarget[i][j]
are either0
or1
.
Solution
determine-whether-matrix-can-be-obtained-by-rotation.py
class Solution:
def findRotation(self, mat: List[List[int]], target: List[List[int]]) -> bool:
rows, cols = len(mat), len(mat[0])
def rotate(M):
M = list(reversed(M))
for i in range(rows):
for j in range(i + 1, cols):
M[i][j], M[j][i] = M[j][i], M[i][j]
return M
for _ in range(4):
mat = rotate(mat)
if mat == target: return True
return mat == target