Design Log Storage System
put(1, "2017:01:01:23:59:59");
put(2, "2017:01:01:22:59:59");
put(3, "2016:01:01:00:00:00");
retrieve("2016:01:01:01:01:01","2017:01:01:23:00:00","Year"); // return [1,2,3], because you need to return all logs within 2016 and 2017.
retrieve("2016:01:01:01:01:01","2017:01:01:23:00:00","Hour"); // return [1,2], because you need to return all logs start from 2016:01:01:01 to 2017:01:01:23, where log 3 is left outside the range.class LogSystem:
def __init__(self):
self.arr = {}
self.g = {"Year": 4, "Month": 7, "Day": 10, "Hour": 13, "Minute": 16, "Second": 19}
def put(self, id: int, timestamp: str) -> None:
self.arr[timestamp] = id
def retrieve(self, s: str, e: str, gra: str) -> List[int]:
idx = self.g[gra]
s,e = s[:idx],e[:idx]
return [v for k,v in self.arr.items() if s<=k[:idx]<=e]
# Your LogSystem object will be instantiated and called as such:
# obj = LogSystem()
# obj.put(id,timestamp)
# param_2 = obj.retrieve(s,e,gra)Last updated