|
发表于 2020-1-9 08:55:11
|
显示全部楼层
本帖最后由 776667 于 2020-1-9 09:46 编辑
有一说一,这题目测空矩阵貌似没有意义吧
- def fun302(matrix):
- def near_check(matrix,x,y):
- near = [i for i in [[x-1,y],[x+1,y],[x,y-1],[x,y+1]] if 0 <= i[0] <= len(matrix)-1 and 0 <= i[1] <= len(matrix[x])-1]
- return [i for i in near if matrix[i[0]][i[1]] == 'O']
-
- if not matrix:
- return matrix
- O_zone,nearby,nearby_2 = [],[],[]
- for i in range(len(matrix)):
- if matrix[0][i] == 'O':
- O_zone.append([0,i])
- if near_check(matrix,0,i):
- nearby = near_check(matrix,0,i)
- while True:
- O_zone.extend(nearby)
- for j in nearby:
- for n in near_check(matrix,j[0],j[1]):
- if n not in O_zone:
- nearby_2.append(n)
- if not nearby_2:
- break
- nearby,nearby_2 = nearby_2,[]
- if matrix[len(matrix)-1][i] == 'O' and [len(matrix)-1,i] not in O_zone:
- O_zone.append([len(matrix)-1,i])
- if near_check(matrix,len(matrix)-1,i):
- nearby = near_check(matrix,len(matrix)-1,i)
- while True:
- O_zone.extend(nearby)
- for j in nearby:
- for n in near_check(matrix,j[0],j[1]):
- if n not in O_zone:
- nearby_2.append(n)
- if not nearby_2:
- break
- nearby,nearby_2 = nearby_2,[]
- for i in range(len(matrix[0])):
- if matrix[i][0] == 'O' and [i,0] not in O_zone:
- O_zone.append([i,0])
- if near_check(matrix,i,0):
- nearby = near_check(matrix,i,0)
- while True:
- O_zone.extend(nearby)
- for j in nearby:
- for n in near_check(matrix,j[0],j[1]):
- if n not in O_zone:
- nearby_2.append(n)
- if not nearby_2:
- break
- nearby,nearby_2 = nearby_2,[]
- if matrix[i][len(matrix[0])-1] == 'O' and [i,len(matrix[0])-1] not in O_zone:
- O_zone.append([i,len(matrix[0])-1])
- if near_check(matrix,i,len(matrix[0])-1):
- nearby = near_check(matrix,i,len(matrix[0])-1)
- while True:
- O_zone.extend(nearby)
- for j in nearby:
- for n in near_check(matrix,j[0],j[1]):
- if n not in O_zone:
- nearby_2.append(n)
- if not nearby_2:
- break
- nearby,nearby_2 = nearby_2,[]
- for i in range(len(matrix)):
- for j in range(len(matrix[i])):
- if matrix[i][j] == 'O' and [i,j] not in O_zone:
- matrix[i][j] = 'X'
- return matrix
复制代码 |
|