Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Simple Caching Mechanism

MediumPython00:00
Practice interviewer
In session
5 left
00:00

Your question is Simple Caching Mechanism. 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.

You need to log in / sign up to run or submit.

Problem

CloudSEK XVigil may repeatedly request the same threat intelligence record. Implement a fixed-capacity least recently used (LRU) cache to avoid recomputing recently accessed results.

Given a positive capacity and a sequence of cache operations, process each operation in order. A get returns the value for a key and marks that key as most recently used. A put inserts or updates a key and marks it as most recently used. If insertion exceeds capacity, evict the least recently used key.

Formal Specification

Implement lru_cache(operations, capacity), where operations is a list of operations represented as lists:

  • ['get', key]
  • ['put', key, value]

Return a list containing the result of every get operation. Return -1 when a key is absent. put operations do not add an output value.

Each operation must run in average O(1) time. Do not use a built-in cache implementation.

Constraints

  • 1 <= capacity <= 10^4
  • 1 <= len(operations) <= 10^5
  • Keys and values are integers
  • Each operation is either ['get', key] or ['put', key, value]
  • All operations are valid

Function Signature

def lru_cache(operations, capacity):
Your solutionPython 3
You need to log in / sign up to run or submit.
Run your code to see test output