From 4b7f7b809fcd5e721cb055d720538659725c6bc9 Mon Sep 17 00:00:00 2001 From: eyuell21 Date: Tue, 14 Oct 2025 11:29:53 +0100 Subject: [PATCH] Lru cache implementation in python --- Sprint-2/implement_lru_cache/lru_cache.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Sprint-2/implement_lru_cache/lru_cache.py b/Sprint-2/implement_lru_cache/lru_cache.py index e69de29..ea0c610 100644 --- a/Sprint-2/implement_lru_cache/lru_cache.py +++ b/Sprint-2/implement_lru_cache/lru_cache.py @@ -0,0 +1,21 @@ +from collections import OrderedDict + +class LRUCache: + + def __init__(self, capacity: int): + self.cache = OrderedDict() + self.capacity = capacity + + def get(self, key: int) -> int: + if key not in self.cache: + return -1 + else: + self.cache.move_to_end(key) + return self.cache[key] + + def set(self, key: int, value: int) -> None: + self.cache[key] = value + self.cache.move_to_end(key) + if len(self.cache) > self.capacity: + self.cache.popitem(last = False) +