Leetcode 359

Y Tech
Sep 1, 2023

--

Coding question asked in Google Interviews

# class Logger:
# def __init__(self):
# self.map = {}

# def shouldPrintMessage(self, timestamp: int, message: str) -> bool:
# if message in self.map and self.map[message] > timestamp - 10:
# return False
# self.map[message] = timestamp
# return True
from collections import deque
class Logger:
def __init__(self):
self.message_set = set()
self.q = deque()

def shouldPrintMessage(self, timestamp: int, message: str) -> bool:
while self.q:
earlest_msg, earlest_ts = self.q[0]
if timestamp - earlest_ts >= 10:
self.q.popleft()
self.message_set.remove(earlest_msg)
else:
break

if message in self.message_set:
return False
self.message_set.add(message)
self.q.append((message, timestamp))
return True

--

--