Skip to content

Commit 0b0bb68

Browse files
authored
Update surrounded-regions.py
1 parent 7eb9c07 commit 0b0bb68

File tree

1 file changed

+23
-17
lines changed

1 file changed

+23
-17
lines changed

Python/surrounded-regions.py

+23-17
Original file line numberDiff line numberDiff line change
@@ -5,36 +5,42 @@
55

66

77
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.
118
def solve(self, board):
9+
"""
10+
:type board: List[List[str]]
11+
:rtype: void Do not return anything, modify board in-place instead.
12+
"""
1213
if not board:
1314
return
1415
q = collections.deque()
1516

1617
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))
2332

2433
while q:
2534
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))
3340

3441
for i in xrange(len(board)):
3542
for j in xrange(len(board[0])):
3643
if board[i][j] != 'V':
3744
board[i][j] = 'X'
3845
else:
3946
board[i][j] = 'O'
40-

0 commit comments

Comments
 (0)