Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution:
- def numIslands(self, grid: List[List[str]]) -> int:
- visited = {}
- islands = 0
- for row, i in enumerate(grid):
- for col, number in enumerate(i):
- if not visited.get(str(row) + str(col)):
- if number == "1":
- visited[str(row) + str(col)] = 1
- iterate = True
- cur_stack = [[row, col]]
- while len(cur_stack) != 0:
- cur = cur_stack.pop()
- try:
- if grid[cur[0] + 1][cur[1]] == "1" and not visited.get(str(cur[0] + 1) + str(cur[1])):
- visited[str(cur[0] + 1) + str(cur[1])] = 1
- cur_stack.append([cur[0] + 1, cur[1]])
- except IndexError:
- pass
- try:
- if grid[cur[0]][cur[1] + 1] == "1" and not visited.get(str(cur[0]) + str(cur[1] + 1)):
- visited[str(cur[0])+ str(cur[1] + 1)] = 1
- cur_stack.append([cur[0], cur[1] + 1])
- except IndexError:
- pass
- try:
- if cur[0] != 0 and grid[cur[0]-1][cur[1]] == "1" and not visited.get(str(cur[0] - 1) + str(cur[1])):
- visited[str(cur[0] - 1) + str(cur[1])] = 1
- cur_stack.append([cur[0]-1, cur[1]])
- except IndexError:
- pass
- try:
- if cur[1] != 0 and grid[cur[0]][cur[1]-1] == "1" and not visited.get(str(cur[0]) + str(cur[1] - 1)):
- visited[str(cur[0])+ str(cur[1] - 1)] = 1
- cur_stack.append([cur[0], cur[1]-1])
- except IndexError:
- pass
- islands += 1
- return islands
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement