Skip to main content

359. Logger Rate Limiter

https://leetcode.com/problems/logger-rate-limiter

Python

from collections import deque

class Logger:
TIMEOUT = 10
def __init__(self):
# Items in queue: tuple(timestamp, message)
self.queue = deque()

def shouldPrintMessage(self, timestamp: int, message: str) -> bool:
# Remove expired items from left of queue
while self.queue and self.queue[0][0]+self.TIMEOUT <= timestamp:
self.queue.popleft()

# Check if timestamp + TIMEOUT
exclude_msgs = [item[1] for item in self.queue]

# Append current record into queue
if message not in [item[1] for item in self.queue]:
self.queue.append((timestamp, message))

return message not in exclude_msgs