【发布时间】:2016-04-16 16:52:56
【问题描述】:
笑声停车场包含一条最多可停放十辆汽车的车道。汽车到达车库的南端,然后从北端离开。如果客户来取车 那不是最北边,他车北边的车都搬出去了,他的车开出去了, 其他汽车按照原来的顺序恢复。 每当一辆车离开时,所有向南的汽车都向前移动。所以,在所有 次所有的空地都在车库的南部。 编写python程序来读取一组输入行。每行包含一个“a”到达或 “d”出发和车牌号。假设汽车按顺序到达和离开 由输入指定。程序应在每次汽车到达时打印一条消息或 离开。有车到的时候,按摩要注明车子有没有空位 在车库里。如果没有车位,车会等到有车位或出发线 为车读书。当房间可用时,应打印另一个按摩。当一辆车 离开时,按摩应包括汽车在车库内移动的次数 (包括出发本身但不包括到达),如果汽车从 排队等候。
这是我的代码。我卡在代码中间。我排队停车。当中间车离开时,我不知道如何重新组装汽车。我想要一种在汽车离开公园之前打印移动次数的方法。所以有人可以帮助我吗?`
class Stack:
def __init__(self):
self.items =[]
def isEmpty(self):
return self.items ==[]
def push(self,item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[len(self.items)-1]
def size(self):
return len(self.items)
class Queue:
def __init__(self,maxSize):
self.items =[]
self._count = 0
self._front = 0
self._back = maxSize - 1
def isEmpty(self):
return self.items ==[]
def enqueue(self, item):
self.items.insert(0,item)
def dequeue(self):
return self.items.pop()
def size(self):
return len(self.items)
def index(self,item):
return self.items.index(item)
q1park = Queue(maxSize=10)
q2wait= Queue()
q3assemble= Queue()
x =raw_input("Car number: ")
def cararrival():
if x[0]=="a":
while q1park.size ==10:
q1park.enqueue(x[1:len(x)])
print(x + "car is arrived")
if q1park.size ==10:
print("No room available in the garage")
x1=raw_input("do you want to wait: ")
if x1=="yes":
q2wait.enqueue(x[1:len(x)])
elif x1=="no":
print("see you next time")
else:
print("Enter yes or no")
def cardepart():
if x[0]=="d":
if x[1:len(x)] in q1park:
while not q1park.index(x[1:len(x)])==0:
q3assemble.enqueue(q1park.dequeue())
q3assemble.dequeue()
while not q3assemble.isEmpty:
【问题讨论】: