leetcode200题 dfs怎么打印呀,不会打印

img

img


class testMedium200:      #dfs  deep-first search  树分支深度优先搜索
    def dfs(self, grid, r, c):
        grid[r][c] = 0
        nr, nc = len(grid), len(grid[0])
        for x, y in [(r-1,c),(r+1, c), (r, c-1), (r, c+1)]:
            if 0 <= x < nr and 0 <= y <nc and grid[x][y] == '1':
                self.dfs(grid, x, y)


    def numIslands(self, grid): #grid: List[List(str)] #集合字符串最后以集合的方式接受输出打印
        nr = len(grid)
        if nr == 0:
            return 0
        nc = len(grid[0])

        num_islands = 0
        for r in range(nr):
            for c in range(nc):
                if grid[r][c] == '1':
                    num_islands += 1
                    self.dfs(grid, r , c)

        return num_islands

    grid = [  ["1","1","1","1","0"],  ["1","1","0","1","0"],["1","1","0","0","0"],["0","0","0","0","0"
    if __name__ == '__main__':
     t = testMedium200()
    target = 9
    print(t.dfs(grid))

有帮助的话,希望能够采纳支持一下,谢谢!

"""
-*- coding:utf-8 -*-
Author:yang-roc
QQ:327844461
Email:aida_pc@qq.com
Time: 2021-07-30
"""

class testMedium200:  # dfs  deep-first search  树分支深度优先搜索
    def dfs(self, grid, r, c):
        grid[r][c] = 0
        nr, nc = len(grid), len(grid[0])
        for x, y in [(r - 1, c), (r + 1, c), (r, c - 1), (r, c + 1)]:
            if 0 <= x < nr and 0 <= y < nc and grid[x][y] == '1':
                self.dfs(grid, x, y)

    def numIslands(self, grid):  # grid: List[List(str)] #集合字符串最后以集合的方式接受输出打印
        nr = len(grid)
        if nr == 0:
            return 0
        nc = len(grid[0])
        num_islands = 0
        for r in range(nr):
            for c in range(nc):
                if grid[r][c] == '1':
                    num_islands += 1
                    self.dfs(grid, r, c)
        return num_islands


if __name__ == '__main__':
    t = testMedium200()
    # 示例①
    grid1 = [
        ["1", "1", "1", "1", "0"],
        ["1", "1", "0", "1", "0"],
        ["1", "1", "0", "0", "0"],
        ["0", "0", "0", "0", "0"]
    ]
    print(t.numIslands(grid1))
    # 示例②
    grid2 = [
        ["1", "1", "0", "0", "0"],
        ["1", "1", "0", "0", "0"],
        ["0", "0", "1", "0", "0"],
        ["0", "0", "0", "1", "1"]
    ]
    print(t.numIslands(grid2))

程序运行截图:

img

dfs打印要非静态的方式打,搞不来非静态 @ — @

类名改成Main,第一个字母大写哦。系统强制要求哈