某汽车轮渡口,过江渡船每次能载10辆车过江,过江车辆分

某汽车轮渡口,过江渡船每次能载10辆车过江,过江车辆分为客车类和货车类。上渡船有如下规定:同类车先到先上船;客车先于货车上船,且每上四辆客车,才允许上一辆货车;若等待客车不足4辆,则以货车代替;若无货车等待,则允许客车都上船。设计一个算法模拟渡口管理。

答案
from collections import deque
def ferrySim():
    bus_q = deque()    #客车队列
    truck_q = deque()  #货车队列
    while bus_q or truck_q:
        cnt=0
        bus_cnt=0
        #渡船最多装10辆
        while cnt<10:
            #满4客车放1货车
            if bus_cnt ==4 and truck_q:
                truck_q.popleft()
                cnt+=1
                bus_cnt=0
            elif bus_q:
                bus_q.popleft()
                cnt+=1
                bus_cnt+=1
            elif truck_q:
                truck_q.popleft()
                cnt+=1
            else:
                break

题目信息

题号:8330
题型:简答题
知识点:Python
难度:普通