DIY: LFU Cache

Solve the interview question "LFU Cache" in this lesson.

Problem statement

Your task is to build an LFU (least frequently used) cache. You will build a structure that initializes a cache with a fixed capacity that allows read and write operations. When the cache reaches its maximum size, replace the least frequent entry with the new one.

Coding exercise

You have to implement the functions Set(key, value) and Get(key). The function Set(key, value) takes key and value as parameters and assigns the value against the provided key. If the key already exists, it updates the value against that key. The function Get(key) takes key as a parameter and fetches the value that is stored against that key.

Sample input

lfu = LFUCache(2) // Initialize the cache
lfu.Set(10, 20) // Set the key 10 with value 20
lfu.Get(10) // Get the value against key 10
lfu.print() // Return the cached key-value pairs

Sample output

lfu.Get(10) ==> 20  
lfu.print() ==> "(10, 20)"

Level up your interview prep. Join Educative to access 80+ hands-on prep courses.