Skip to content

Commit 40f8537

Browse files
committed
作业
1 parent 29eb1ed commit 40f8537

2 files changed

Lines changed: 46 additions & 0 deletions

File tree

Week07/200.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class Solution:
2+
def dfs(self, grid, r, c):
3+
grid[r][c] = "0"
4+
nr = len(grid)
5+
nl = len(grid[0])
6+
for x, y in [(r - 1, c), (r + 1, c), (r, c - 1), (r, c + 1)]:
7+
if 0 <= x < nr and 0 <= y < nl and grid[x][y] == "1":
8+
self.dfs(grid, x, y)
9+
10+
def numIslands(self, grid: List[List[str]]) -> int:
11+
nr = len(grid)
12+
if nr == 0:
13+
return 0
14+
nl = len(grid[0])
15+
num_island = 0
16+
for r in range(nr):
17+
for l in range(nl):
18+
if grid[r][l] == "1":
19+
num_island += 1
20+
self.dfs(grid, r, l)
21+
return num_island

Week07/433.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class Solution:
2+
def minMutation(self, start: str, end: str, bank: List[str]) -> int:
3+
bank = set(bank)
4+
if end not in bank:
5+
return -1
6+
change_map = {
7+
"A": "CGT",
8+
"C": "AGT",
9+
"G": "ACT",
10+
"T": "ACG"
11+
}
12+
queue = [(start, 0)]
13+
while queue:
14+
node, step = queue.pop(0)
15+
16+
if node == end:
17+
return step
18+
19+
for i, s in enumerate(node):
20+
for c in change_map[s]:
21+
new = node[:i] + c + node[i + 1:]
22+
if new in bank:
23+
queue.append((new, step + 1))
24+
bank.remove(new)
25+
return -1

0 commit comments

Comments
 (0)