defdfs(x, y): for i inrange(8): # 枚举8个方向 flag = 1 for j inrange(1, 7): # 从GoalSting[1]到GoalSting[6] nx = x + j * dxs[i] # 这里最妙的是这样保证了朝着一个方向连续搜索 ny = y + j * dys[i] # 而非8个方向螺旋式地搜索 if nx < 0or nx >= n or ny < 0or ny >= n: flag = 0 break if arr[nx][ny] != GoalString[j]: flag = 0 break if flag == 0: continue for j inrange(7): # 从GoalSting[0]到GoalSting[6] nx = x + j * dxs[i] ny = y + j * dys[i] ans[nx][ny] = arr[nx][ny] # 将目标数据存到副本数组当中
if __name__ == "__main__": n = int(input()) arr = [[''for i inrange(n)] for i inrange(n)] ans = [[0for i inrange(n)] for i inrange(n)] for i inrange(n): InputString = input() for j inrange(n): arr[i][j] = InputString[j] # 这里要注意不要把input写到最里层
for i inrange(n): for j inrange(n): if arr[i][j] == 'y': # 如果遇到y就开始搜索 dfs(i, j)
for i inrange(n): for j inrange(n): if ans[i][j] == 0: ans[i][j] = '*' print(ans[i][j],end='') print(end='\n')