题目描述
一个矩形的房间铺着红色或者黑色的方砖。一个人站在红砖上不能移动,在黑砖上可以沿着上、下、左、右4个方向移动到相邻的方砖。请编写一个程序,计算从起点出发可以到达的黑色方砖的数量(包括起点在内)。
起点是@,要求:遍历所有黑砖。
输入
输入第一行是两个正整数W和H; W和H分别表示x方向和y方向上的方砖数量。W和H都是正整数并且不超过20.
接下来有H行,每行包含W个字符。每个字符表示方砖的颜色如下。
‘.’ - 黑砖
‘#’ - 红砖
‘@’ - 起点
输出
输出从起点出发可以到达的黑砖的数量(包括起点在内)。
样例输入 Copy
5 4
…#
…
#@…
.#…#
样例输出 Copy
15
第一个是广搜版
class Queue:
def __init__(self,size = 100):
self.queue = [0 for _ in range(size)]
self.size = size
self.rear = 0 #队尾
self.front = 0 #队首
def push(self,element):
if not self.is_filled():
self.rear = (self.rear+1) % self.size
self.queue[self.rear] = element
else:
raise IndexError("Queue is filled")
def pop(self):
if not self.is_empty():
self.front = (self.front + 1