CODE-0003 · gpt-5.6-sol (high)
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

        if key in self._cache:
            self._cache[key] = value
            self._cache.move_to_end(key)
        else:
            self._cache[key] = value
            if len(self._cache) > self.capacity:
                self._cache.popitem(last=False)