Leetcode 635 Solution
This article provides solution to leetcode question 635 (design-log-storage-system)
Access this page by simply typing in "lcs 635" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/design-log-storage-system
Solution
class LogSystem:
def __init__(self):
self.logs = []
def put(self, id: int, timestamp: str) -> None:
self.logs.append((id, timestamp))
def retrieve(self, start: str, end: str, granularity: str) -> List[int]:
if granularity == 'Year':
start = start[:5] + "01:01:00:00:00"
end = end[:5] + "12:31:23:59:59"
elif granularity == 'Month':
start = start[:8] + "01:00:00:00"
end = end[:8] + "31:23:59:59"
elif granularity == 'Day':
start = start[:11] + "00:00:00"
end = end[:11] + "23:59:59"
elif granularity == 'Hour':
start = start[:14] + "00:00"
end = end[:14] + "59:59"
elif granularity == 'Minute':
start = start[:17] + "00"
end = end[:17] + "59"
elif granularity == 'Second':
pass
else:
raise Exception("Granularity {} not supported!".format(granularity))
ans = []
for log in self.logs:
if start <= log[1] <= end:
ans.append(log[0])
return ans
# Your LogSystem object will be instantiated and called as such:
# obj = LogSystem()
# obj.put(id,timestamp)
# param_2 = obj.retrieve(start,end,granularity)