20 lines
534 B
Python
20 lines
534 B
Python
|
from collections import OrderedDict
|
||
|
|
||
|
class LRUCache:
|
||
|
def __init__(self, capacity: int):
|
||
|
self.cache = OrderedDict()
|
||
|
self.capacity = capacity
|
||
|
|
||
|
def get(self, key):
|
||
|
if key not in self.cache:
|
||
|
return None
|
||
|
self.cache.move_to_end(key)
|
||
|
return self.cache[key]
|
||
|
|
||
|
def put(self, key, value):
|
||
|
if key in self.cache:
|
||
|
self.cache.move_to_end(key)
|
||
|
elif len(self.cache) >= self.capacity:
|
||
|
self.cache.popitem(last=False)
|
||
|
self.cache[key] = value
|