from collections import OrderedDict
class LRUCache:
def __init__(self, capacity):
self.capacity = capacity
self._cache = OrderedDict()
def get(self, key):
if key not in self._cache:
return -1
self._cache.move_to_end(key)
return self._cache[key]
def put(self, key, value):
if self.capacity == 0:
return
self._cache[key] = value
self._cache.move_to_end(key)
if len(self._cache) > self.capacity:
self._cache.popitem(last=False)