Your question is LRU Cache for Audio Segments. Start with the requirements on the right.
Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.
Implement a fixed-capacity cache for audio segments identified by string keys. The cache must support get(key) and put(key, value, size) in O(1) average time. When inserting a new segment would exceed the cache capacity, evict least recently used segments until enough space is available. Return -1 from get if the key is missing. If a segment's size is larger than the total capacity, do not store it.
def process_cache_operations(capacity, operations):