leetcode 日经贴,python code -Surrounded Regions

来源:互联网 发布:c类网络的子网掩码 编辑:程序博客网 时间:2024/04/28 08:48

Surrounded Regions

class Solution:    # @param board, a 2D array    # Capture all regions by modifying the input board in-place.    # Do not return any value.    def solve(self, board):        n = len(board)        if n <= 1: return        m = len(board[0])        if m <= 1: return        q = []        x, o, oo = 'X', 'O', 'o'        dir = ((-1, 0), (1, 0), (0, 1), (0, -1))        for i in range(m):            if board[0][i] == o:                board[0][i] = oo                q.append((0,i))            if board[n - 1][i] == o:                board[n - 1][i] = oo                q.append((n - 1, i))        for i in range(n):            if board[i][0] == o:                board[i][0] = oo                q.append((i, 0))            if board[i][m - 1] == o:                board[i][m - 1] = oo                q.append((i, m - 1))        while len(q) > 0:            r, c = q[0]            del q[0]            for i in range(len(dir)):                nr, nc = r + dir[i][0], c + dir[i][1]                if 0 <= nr < n and 0 <= nc < m and board[nr][nc] == o:                    board[nr][nc] = oo                    q.append((nr,nc))        for i in range(n):            for j in range(m):                if board[i][j] == oo:                    board[i][j] = o                elif board[i][j] == o:                    board[i][j] = x


0 0
原创粉丝点击