BFS越写越熟练啦,开心!继续加油哦~~~
def bfs():
queue = []
d = [[0 for i in range(c)] for j in range(r)]
dx = [-1,0,1,0]
dy = [0,1,0,-1]
queue.append(start)
while len(queue):
t = queue.pop(0)
if t == end: return d[t[0]][t[1]]
for i in range(4):
x = t[0] + dx[i]
y = t[1] + dy[i]
if 0 <= x < r and 0 <= y < c and d[x][y] == 0 and m[x][y] != '#':
d[x][y] += d[t[0]][t[1]] + 1
queue.append([x,y])
return "oop!"
if __name__ == "__main__":
n = int(input())
for i in range(n):
m = [] # 存放迷宫
r,c = map(int,input().split())
for j in range(r):
m.append(list(input())) # 用list(str)可以将字符串str拆解为单个字符
for p in range(r):
for q in range(c):
if m[p][q] == 'S':
start = [p,q]
if m[p][q] == 'E':
end = [p,q]
print(bfs())