LeetCode #359. Logger Rate Limiter

题目

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
posted @ 2020-12-08 08:48  老鼠司令  阅读(65)  评论(0编辑  收藏  举报