简单搜索
需要注意的是:Python中的str是不可变类型,所以不能把每行存储为一个str,而是每个字符存储为一个str,然后构成mp[m][n]大小的数组。
m,n=map(int,input().split(' '))
mp=[[None for j in range(0,n)] for i in range(0,m)]
for i in range(0,m):
tmp=input()
for j in range(0,n):
mp[i][j]=tmp[j]
dests=[(0,1),(0,-1),(-1,0),(1,0),(-1,-1),(-1,1),(1,1),(1,-1)]
ans=0
for i in range(0,m):
for j in range(0,n):
if mp[i][j]=='#':
mp[i][j]='.'
ans+=1
queue=[(i,j)]
while queue:
old=queue.pop(0)
for dest in dests:
newi,newj=old[0]+dest[0],old[1]+dest[1]
if newi>=0 and newi<m and newj>=0 and newj<n and mp[newi][newj]=='#':
mp[newi][newj]='.'
queue.append((newi,newj))
print(ans)
京公网安备 11010502036488号