Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. class Solution:
  2. def numIslands(self, grid: List[List[str]]) -> int:
  3. visited = {}
  4. islands = 0
  5. for row, i in enumerate(grid):
  6. for col, number in enumerate(i):
  7. if not visited.get(str(row) + str(col)):
  8. if number == "1":
  9. visited[str(row) + str(col)] = 1
  10. iterate = True
  11. cur_stack = [[row, col]]
  12. while len(cur_stack) != 0:
  13. cur = cur_stack.pop()
  14. try:
  15. if grid[cur[0] + 1][cur[1]] == "1" and not visited.get(str(cur[0] + 1) + str(cur[1])):
  16. visited[str(cur[0] + 1) + str(cur[1])] = 1
  17. cur_stack.append([cur[0] + 1, cur[1]])
  18. except IndexError:
  19. pass
  20. try:
  21. if grid[cur[0]][cur[1] + 1] == "1" and not visited.get(str(cur[0]) + str(cur[1] + 1)):
  22. visited[str(cur[0])+ str(cur[1] + 1)] = 1
  23. cur_stack.append([cur[0], cur[1] + 1])
  24. except IndexError:
  25. pass
  26. try:
  27. if cur[0] != 0 and grid[cur[0]-1][cur[1]] == "1" and not visited.get(str(cur[0] - 1) + str(cur[1])):
  28. visited[str(cur[0] - 1) + str(cur[1])] = 1
  29. cur_stack.append([cur[0]-1, cur[1]])
  30. except IndexError:
  31. pass
  32. try:
  33. if cur[1] != 0 and grid[cur[0]][cur[1]-1] == "1" and not visited.get(str(cur[0]) + str(cur[1] - 1)):
  34. visited[str(cur[0])+ str(cur[1] - 1)] = 1
  35. cur_stack.append([cur[0], cur[1]-1])
  36. except IndexError:
  37. pass
  38. islands += 1
  39.  
  40.  
  41. return islands
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement