python第五周小测

匿名 (未验证) 提交于 2019-12-02 22:51:30

一.队列数据结构的封装
队列类。队列(queue)是具有先进先出(FIFO)特性的数据结构。一个队 列就像是一行队伍,数据从前端被移除,从后端被加入。这个类必须支持 下面几种方法:


并实现下面的功能:

class Queue:       def __init__(self):           self._queue = []       def __len__(self):           print(len(self._queue))           return len(self._queue)       def is_empty(self):           print(len(self._queue) == 0)           return len(self._queue) == 0       def enqueue(self,item):           self._queue.append(item)          # print("元素[%s]入栈成功" % (item))       def dequeue(self):           if   len(self._queue) != 0:               print(self._queue.pop(0))               #return self._queue.pop()           else:               print('error')       def first(self):           print(self._queue[0])           return self._queue[0]        queue = Queue() queue.enqueue(5) queue.enqueue(3) queue.__len__() queue.dequeue() queue.is_empty() queue.dequeue() queue.is_empty() queue.dequeue() queue.enqueue(7) queue.enqueue(9) queue.first() queue.enqueue(4) queue.__len__() queue.dequeue() 

2.最近请求次数(Leetcode)
写一个 RecentCounter 类来计算最近的请求。

它只有一个方法:ping(int t),其中 t 代表以毫秒为单位的某个时间。

返回从 3000 毫秒前到现在的 ping 数。

任何处于 [t - 3000, t] 时间范围之内的 ping 都将会被计算在内,包括当前(指 t 时刻)的 ping。

保证每次对 ping 的调用都使用比之前更大的 t 值。

class RecentCounter:     def __init__(self):         self.latest = []            # 记录三秒之内的ping时刻     def ping(self, t: int) -> int:         self.latest.append(t)       # 添加记录         while self.latest and t - self.latest[0] > 3000:             self.latest.pop(0)      # 移除3秒之前的数据         return len(self.latest)  
文章来源: https://blog.csdn.net/qq_40102768/article/details/91458256
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!