|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- Design a logger system that receive stream of messages along with its timestamps, each message should be printed if and only if it is not printed in the last 10 seconds.
- Given a message and a timestamp (in seconds granularity), return true if the message should be printed in the given timestamp, otherwise returns false.
- It is possible that several messages arrive roughly at the same time.
- Example:
- Logger logger = new Logger();
- // logging string "foo" at timestamp 1
- logger.shouldPrintMessage(1, "foo"); returns true;
- // logging string "bar" at timestamp 2
- logger.shouldPrintMessage(2,"bar"); returns true;
- // logging string "foo" at timestamp 3
- logger.shouldPrintMessage(3,"foo"); returns false;
- // logging string "bar" at timestamp 8
- logger.shouldPrintMessage(8,"bar"); returns false;
- // logging string "foo" at timestamp 10
- logger.shouldPrintMessage(10,"foo"); returns false;
- // logging string "foo" at timestamp 11
- logger.shouldPrintMessage(11,"foo"); returns true;
复制代码
- class Logger:
- def __init__(self):
- """
- Initialize your data structure here.
- """
- self.map = {}
- def shouldPrintMessage(self, timestamp: int, message: str) -> bool:
- """
- Returns true if the message should be printed in the given timestamp, otherwise returns false.
- If this method returns false, the message will not be printed.
- The timestamp is in seconds granularity.
- """
- if message not in self.map or timestamp - self.map[message] >= 10:
- self.map[message] = timestamp
- return True
- else:
- return False
- # Your Logger object will be instantiated and called as such:
- # obj = Logger()
- # param_1 = obj.shouldPrintMessage(timestamp,message)
复制代码 |
|