#coding:utf-8
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 判断岛屿数量
# @param grid char字符型二维数组
# @return int整型
#
class Solution:
def solve(self , grid ):
# write code here
cnt = 0
n1 = len(grid)
n2 = len(grid[0])
for i in range(0, n1):
for j in range(0, n2):
if grid[i][j] == '1':
cnt += 1
self.dfs(i, j, grid)
print ("Total cnt: ", cnt)
return cnt
def dfs(self, i, j, grid):
n1 = len(grid)
n2 = len(grid[0])
grid[i][j] = '0'
#dfs 4 directions
if i - 1 >= 0 and grid[i - 1][j] == '1':
self.dfs(i - 1, j, grid)
if i + 1 < n1 and grid[i + 1][j] == '1':
self.dfs(i + 1, j, grid)
if j - 1 >= 0 and grid[i][j - 1] == '1':
self.dfs(i, j - 1, grid)
if j + 1 < n2 and grid[i][j + 1] == '1':
self.dfs(i, j + 1, grid)
return