你需要设计一个能够接收带有时间戳的消息流日志系统。python 如果某条消息当且仅当在过去 10 秒内没有被打印出来那么它就应该被打印出来。在方法 couldPrintMessage 中给定一条消息 message 和一个时间戳 timestamp以秒为单位如果该消息能够在给定的时间戳内被打印则返回 true否则返回 false。
以下是一个可能的实现:
class Logger:
def __init__(self):
self.message_dict = {}
def couldPrintMessage(self, message: str, timestamp: int) -> bool:
if message in self.message_dict and timestamp - self.message_dict[message] < 10:
return False
self.message_dict[message] = timestamp
return True
使用字典来存储每条消息的最新时间戳。在 couldPrintMessage 方法中,首先检查消息是否已经存在于字典中,并且最新时间戳与给定时间戳的差小于 10 秒。如果是,则返回 False,表示消息不能被打印。否则,更新字典中消息的时间戳为给定时间戳,并返回 True,表示消息可以被打印。
示例用法:
logger = Logger()
print(logger.couldPrintMessage("message1", 1)) # 输出 True
print(logger.couldPrintMessage("message2", 2)) # 输出 True
print(logger.couldPrintMessage("message1", 3)) # 输出 False
print(logger.couldPrintMessage("message2", 11)) # 输出 True
print(logger.couldPrintMessage("message1", 12)) # 输出 True
原文地址: https://www.cveoy.top/t/topic/ivWT 著作权归作者所有。请勿转载和采集!