Spaces:
Running
Running
| from collections import OrderedDict | |
| class LRUCache: | |
| def __init__(self, capacity: int): | |
| self.capacity = capacity | |
| self.store: OrderedDict[str, int] = OrderedDict() | |
| def get(self, key: str) -> int: | |
| if key not in self.store: | |
| return -1 | |
| # BUG: does not refresh recency when key is accessed. | |
| return self.store[key] | |
| def put(self, key: str, value: int) -> None: | |
| if key in self.store: | |
| self.store.pop(key) | |
| self.store[key] = value | |
| if len(self.store) > self.capacity: | |
| self.store.popitem(last=False) | |