classSolution: defnumIslands(self, grid: List[List[str]]) -> int: m = len(grid) n = len(grid[0])
defdfs(i,j): if i<0or i>=m or j<0or j>=n or grid[i][j] != "1": return grid[i][j] = "2"# 击沉岛屿 dfs(i-1,j) dfs(i+1,j) dfs(i,j+1) dfs(i,j-1)
ans = 0 for i, row inenumerate(grid): for j,v inenumerate(row): if v == "1": dfs(i,j) ans += 1 return ans
defmain(): data = sys.stdin.read().strip().split() m, n = int(data[0]), int(data[1]) idx = 2 matrix = [] for i inrange(m): row = list(map(int, data[idx:idx+n])) matrix.append(row) idx += n
sol = Solution() result = sol.numIslands(matrix) print(result)