Check

Реализация LRU-кэша

Python Senior Авито 01.01.2025
Реализуйте класс `LRUCache`, который хранит ограниченное количество элементов и удаляет самый старый при достижении лимита. Нельзя использовать `functools.lru_cache`, но можно `OrderedDict`.
Ответы
Решение
```python from collections import OrderedDict class LRUCache: def __init__(self, size): self.size = size self.cache = OrderedDict() def get(self, key): if key not in self.cache: return None self.cache.move_to_end(key) return self.cache[key] def set(self, key, value): if key in self.cache: self.cache.move_to_end(key) self.cache[key] = value if len(self.cache) > self.size: self.cache.popitem(last=False) ```