3
digits = {1, 2, 3, 4, 5, 6, 7, 8, 9}6
def magic_3_3(cls, square: List[List[int]]) -> bool:7
if set(sum(square, [])) != Solution.digits:9
sum_row0 = sum(square[0])11
if sum(square[r]) != sum_row0:13
if any(sum(col) != sum_row0 for col in zip(*square)):15
sum_main_diagonal = sum_second_diagonal = 017
sum_main_diagonal += square[i][i]18
sum_second_diagonal += square[i][2 - i]19
return sum_main_diagonal == sum_second_diagonal == sum_row021
def numMagicSquaresInside(self, grid: List[List[int]]) -> int:23
rows, cols = len(grid), len(grid[0])24
for r in range(rows - 2):25
for c in range(cols - 2):26
if Solution.magic_3_3(27
[grid[row_idx][c : c + 3] for row_idx in range(r, r + 3)]