|
5 | 5 |
|
6 | 6 |
|
7 | 7 | class Solution(object):
|
8 |
| - # @param board, a 2D array |
9 |
| - # Capture all regions by modifying the input board in-place. |
10 |
| - # Do not return any value. |
11 | 8 | def solve(self, board):
|
| 9 | + """ |
| 10 | + :type board: List[List[str]] |
| 11 | + :rtype: void Do not return anything, modify board in-place instead. |
| 12 | + """ |
12 | 13 | if not board:
|
13 | 14 | return
|
14 | 15 | q = collections.deque()
|
15 | 16 |
|
16 | 17 | for i in xrange(len(board)):
|
17 |
| - q.append((i, 0)) |
18 |
| - q.append((i, len(board[0]) - 1)) |
19 |
| - |
20 |
| - for j in xrange(len(board[0])): |
21 |
| - q.append((0, j)) |
22 |
| - q.append((len(board) - 1, j)) |
| 18 | + if board[i][0] == 'O': |
| 19 | + board[i][0] = 'V' |
| 20 | + q.append((i, 0)) |
| 21 | + if board[i][len(board[0]) - 1] == 'O': |
| 22 | + board[i][len(board[0]) - 1] = 'V' |
| 23 | + q.append((i, len(board[0]) - 1)) |
| 24 | + |
| 25 | + for i in xrange(1, len(board[0])-1): |
| 26 | + if board[0][i] == 'O': |
| 27 | + board[0][i] = 'V' |
| 28 | + q.append((0, i)) |
| 29 | + if board[len(board) - 1][i] == 'O': |
| 30 | + board[len(board) - 1][i] = 'V' |
| 31 | + q.append((len(board) - 1, i)) |
23 | 32 |
|
24 | 33 | while q:
|
25 | 34 | i, j = q.popleft()
|
26 |
| - if board[i][j] in ['O', 'V']: |
27 |
| - board[i][j] = 'V' |
28 |
| - for x, y in [(i + 1, j), (i - 1, j), (i, j + 1), (i, j - 1)]: |
29 |
| - if 0 <= x < len(board) and 0 <= y < len(board[0]) and \ |
30 |
| - board[x][y] == 'O': |
31 |
| - board[x][y] = 'V' |
32 |
| - q.append((x, y)) |
| 35 | + for x, y in [(i + 1, j), (i - 1, j), (i, j + 1), (i, j - 1)]: |
| 36 | + if 0 <= x < len(board) and 0 <= y < len(board[0]) and \ |
| 37 | + board[x][y] == 'O': |
| 38 | + board[x][y] = 'V' |
| 39 | + q.append((x, y)) |
33 | 40 |
|
34 | 41 | for i in xrange(len(board)):
|
35 | 42 | for j in xrange(len(board[0])):
|
36 | 43 | if board[i][j] != 'V':
|
37 | 44 | board[i][j] = 'X'
|
38 | 45 | else:
|
39 | 46 | board[i][j] = 'O'
|
40 |
| - |
|
0 commit comments