1034. 边界着色
BFS 将原始点然后加入队列,出队之前判断其周围是否有连通格子,然后入队,记得置标志位,然后判断是否是边界格子 是的话将其加入一个列表,最后逐一染色
class Solution:
def colorBorder(self, grid: List[List[int]], row: int, col: int, color: int) -> List[List[int]]:
res = []
que = [[row,col],]
flag = grid[row][col]
mit = [[0]*len(grid[0]) for _ in range(len(grid))]
while len(que)>0:
r,c = que[0]
#print(r,c,(len(grid)-1),grid[r][c+1])
if r>0 and grid[r-1][c] == flag and mit[r-1][c]==0:
que.append([r-1,c])
mit[r-1][c] =1
if c>0 and grid[r][c-1] == flag and mit[r][c-1]==0:
que.append([r,c-1])
mit[r][c-1] =1
if r<len(grid)-1 and grid[r+1][c] == flag and mit[r+1][c]==0:
que.append([r+1,c])
mit[r+1][c] =1
if c<(len(grid[0])-1) and grid[r][c+1] == flag and mit[r][c+1]==0:
que.append([r,c+1])
mit[r][c+1]=1
if r == 0 or r==len(grid)-1 or c==0 or c==len(grid[0])-1 or grid[r+1][c] != flag or grid[r][c-1] != flag or grid[r][c+1] != flag or grid[r-1][c] != flag:
res.append([r,c])
del que[0]
#print(res)
for i,j in res:
grid[i][j] = color
return grid
1662. 检查两个字符串数组是否相等
用字符串存起来 然后比较
class Solution:
def arrayStringsAreEqual(self, word1: List[str], word2: List[str]) -> bool:
str1,str2 ='',''
for a in word1:
str1 += a
for a in word2:
str2 += a
# print(str1,str2)
if str2== str1:
return True
else:
return False