解题思路:找到相连数字的下标,存入一个辅助列表。不要一开始就在原列表中修改数字,会导致行列的判断出错。
n,m = map(int,input().split())
color = list([i for i in map(int,input().split())]for j in range(n))
a =[] #存放下标的辅助列表
#以下双重循环判断每一 行 中,数字相连的坐标
for i in range(n):
for j in range(1,m-1):
if color[i][j-1] == color[i][j] and color[i][j] == color[i][j+1]:
a.append([i,j-1])
a.append([i,j])
a.append([i,j+1])
#以下双重循环判断每一 列 中,数字相连的坐标
for i in range(m):
for j in range(1,n-1):
if color[j-1][i] == color[j][i] and color[j][i] == color[j+1][i]:
a.append([j-1,i])
a.append([j,i])
a.append([j+1,i])
# 遍历辅助列表,把原列表相应下标中的数改为0
for i in a:
color[i[0]][i[1]] = 0
# 遍历输入修改后的列表
for i in color:
print(*i)