编辑代码

#queue.py

class Queue:
    def __init__(self):
        self.items = []

    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 hotPotato(namelist, num):
    """
    namelist: 参加热土豆游戏的人的名单,list类型。
    num: 热土豆游戏中,每一轮被传递的次数,int类型。
    """
    simqueue = Queue()  # 创建一个模拟的空队列。
    for name in namelist:
        simqueue.enqueue(name)  # 把人名加入到队列当中。
        
    while simqueue.size() > 1:  # while循环是一轮一轮传递土豆,直到剩下1个人为止。
        for i in range(num - 1):  # 热土豆从一轮的开始,在当前for循环中一共传递了num - 1次。 
            simqueue.enqueue(simqueue.dequeue())  # 队首的人转到队尾,这算是1次传递,因传递完的人由队首排到队尾去了。
        simqueue.dequeue()  # 热土豆从一轮的开始,到这里传递了num次,这个被出列的人属于死亡的人名,不再转到队尾。这就是热土豆传递的1轮了。
    return simqueue.dequeue()  # 返回剩下的最后那个人。

print(hotPotato(["Bill", "David", "Susan", "Jane", "Kent", "Brad"], 7))