LRU Cache Simulator
JavaScript
Hard
4 views
Problem Description
Implement LRU cache of capacity C. Commands: GET key, PUT key value. GET prints value or -1. PUT updates cache.
Input Format
First line: C q. Next q lines commands.
Output Format
Output for each GET.
Sample Test Case
Input:
2 7
PUT a 1
PUT b 2
GET a
PUT c 3
GET b
GET c
GET a
Official Solution
const fs=require('fs');const lines=fs.readFileSync(0,'utf8').trim().split(/\
?\
/);if(!lines[0])process.exit(0);let [C,q]=lines[0].trim().split(/\\s+/).map(Number);const map=new Map();const out=[];for(let i=1;i<=q;i++){const p=lines[i].trim().split(/\\s+/);if(p[0]==='GET'){const k=p[1];if(!map.has(k))out.push('-1');else{const v=map.get(k);map.delete(k);map.set(k,v);out.push(String(v));}}else if(p[0]==='PUT'){const k=p[1],v=p[2];if(map.has(k))map.delete(k);map.set(k,v);if(map.size>C){const first=map.keys().next().value;map.delete(first);}}}process.stdout.write(out.join('\
'));
Solutions (0)
No solutions submitted yet. Be the first!
No comments yet. Start the discussion!