LeetCode #359. Logger Rate Limiter
题目
解题方法
构造函数设置一个字典dic,在shouldPrintMessage函数中根据message是否在字典中分为两种情况讨论,如果在字典中,看看当前时间戳和字典中存放的时间戳的差值是不是已经达到10了,如果是的,就更新一下时间戳,可以打印了。如果不是,就返回False。如果message不在字典中的话,那就给它加进去,再设置一个时间戳,也是返回True。
时间复杂度:O(1)
空间复杂度:O(n)
代码
class Logger:
def __init__(self):
self.dic = {}
def shouldPrintMessage(self, timestamp: int, message: str) -> bool:
if message in self.dic:
if timestamp - self.dic[message] > 9:
self.dic[message] = timestamp
else:
return False
else:
self.dic[message] = timestamp
return True