130. 被围绕的区域

class Solution:
    def solve(self, board):
        """
        :type board: List[List[str]]
        :rtype: void Do not return anything, modify board in-place instead.
        """
        if not board:
            return None

        m, n = len(board), len(board[0])

        def _solve(i, j):
            if 0 <= i < m and 0 <= j < n and board[i][j] == 'O':
                board[i][j] = '*'
                list(map(_solve, (i+1, i-1, i, i), (j, j, j+1, j-1)))

        for i in range(m):
            list(map(_solve, (i, i), (0, n - 1)))

        for i in range(n):
            list(map(_solve, (0, m - 1), (i, i)))

        for i in range(m):
            for j in range(n):
                if board[i][j] == 'O':
                    board[i][j] = 'X'
                elif board[i][j] == '*':
                    board[i][j] = 'O'

相关文章:

  • 2021-12-15
  • 2021-07-19
  • 2021-11-02
  • 2022-02-20
  • 2021-06-23
  • 2022-01-25
  • 2021-08-06
  • 2021-11-01
猜你喜欢
  • 2021-06-11
  • 2021-08-27
  • 2021-09-21
  • 2022-12-23
  • 2021-11-11
  • 2022-12-23
  • 2021-10-30
相关资源
相似解决方案