找每个位置的八个方向上是否有雷,转换成在每个位置为中心的3*3正方形区域内寻找(除去正中心位置),复杂的地方在于处理边界上的位置。解决办法是把原来的区域包起来,即原来是4*4的区域,现在转换成6*6的区域,且新区域的边界上都没有雷,这样就便于处理和解决问题了
n, m = map(int, input().split())
matrix = []
virtual_hang=[ "." for i in range(m+2)] # 虚拟行
matrix.append(virtual_hang) # 在第一行添加虚拟行
result = []
for i in range(n):
lst=list(input())
lst.insert(0,".") # 给每行的第一行位置插入“.”,表示没有雷
lst.append(".")
matrix.append(lst) # 给每一行的结尾append "."
matrix.append(virtual_hang) # 在最后也添加一行虚拟行
for i in range(1,n+1):
for j in range(1,m+1):
if matrix[i][j]=="*":
print("*",end="")
else:
res=0
for p in range(i-1,i+2):
for q in range(j-1,j+2):
if matrix[p][q]=="*":
res+=1
print(res,end="")
print("")