GoalScope — lru_cache (Qwen2.5-Coder-32B-Instruct) — hover a token to see the patched verbalization
↵
<code>↵
class LRUCache:↵
"""Least Recently Used Cache Implementation"""↵
class Node:↵
def __init__(self, key=0, value=0):↵
self.key = key↵
self.value = value↵
self.prev = None↵
self.next = None↵
↵
def __init__(self, capacity: int):↵
self.cache = {}↵
self.capacity = capacity↵
self.size = 0↵
self.head, self.tail = self.Node(), self.Node()↵
self.head.next = self.tail↵
self.tail.prev = self.head↵
↵
def _remove(self, node):↵
prev = node.prev↵
nxt = node.next↵
prev.next = nxt↵
nxt.prev = prev↵
↵
def _add(self, node):↵
node.prev = self.head↵
node.next = self.head.next↵
self.head.next.prev = node↵
self.head.next = node↵
↵
def get(self, key: int) -> int:↵
node = self.cache.get(key, None)↵
if not node:↵
return -1↵
self._remove(node)↵
self._add(node)↵
return node.value↵
↵
def put(self, key: int, value: int) -> None:↵
node = self.cache.get(key)↵
if not node:↵
newNode = self.Node(key, value)↵
self.cache[key] = newNode↵
self._add(newNode)↵
self.size += 1↵
if self.size > self.capacity:↵
tail = self.tail.prev↵
self._remove(tail)↵
del self.cache[tail.key]↵
self.size -= 1↵
else:↵
node.value = value↵
self._remove(node)↵
self._add(node)↵
</code>