#P1881. 2024.08.11-DJ-第1题-前端编程题A卷

2024.08.11-DJ-第1题-前端编程题A卷

No testdata at current.

题目描述

设计和构建一个支持过期淘汰的最近最少使用缓存类LRU,该缓存会删除最近最少使用的项目。缓存应该从键映射到值,允许插入和检索特定键对应的值,并在初始化时指定最大容量和过期时长。当缓存被填满时,它应该删除最近最少使用的项目;当某个元素键已过期,也应该被删除。实现get(key)方法,根据提供的key获取缓存中指定的元素;实现set(key, value)方法,根据提供的key将value写入到缓存中,该方法无返回值。实现keys()方法,返回缓存中每个元素的key,按最近使用到最少使用的顺序排序,返回一个数组。提供maxAge选项,表示缓存项在缓存中保留的最大毫秒数。假设元素的key在缓存中存在超过该时长,表示该key已过期。提供maxSize选项,表示最多缓存多少个缓存项。注意,类模板中已实现了sleep方法,可模拟时间间隔。

输入描述

输入数据有两行:第一行是需要进行的操作,第一个操作固定是“LRU”,表示初始化 LRU 类实例,后续操作是 LRU 类中定义的方法。第二行是每个操作的参数,第一个参数固定是 LRU 初始化的参数,后续参数是调用 LRU 类中方法的参数。

输出描述

输出一行,给出初始化 LRU 实例的后续每一步操作的结果,将结果保存在数组中并 toString 后输出

样例输入输出

["LRU", "set", "set", "get", "keys"] [[3,1e+308],["a”,1],["b", 2],["b"], []]
,,2,b,a