【2026年网易雷火春招- 4月26日-第二题- 界面缓存】(题目+思路+JavaC++Python解析+在线测试)
题目内容
在大型多人在线角色扮演游戏(MMORPG)中,玩家会频繁打开各种功能界面,如背包、技能、地图、团队和任务等。为了优化内存占用和加快界面响应速度,游戏需要采用界面缓存管理机制。
游戏中的界面分为两类:
可缓存界面:关闭后不会立即销毁,而是暂存到一个大小有限的缓存区中。当玩家再次打开该界面时,可以快速从缓存区恢复,避免重新加载资源。
不可缓存界面:关闭后立即从内存中卸载,下次打开时需要重新创建。
缓存区采用先入先出(FIFO)淘汰策略:当缓存区已满时,新进入缓存区的界面会将最早进入缓存区的界面挤出(从缓存区中移除,彻底卸载)。
给定所有界面的类型、缓存区的容量,以及一系列打开和关闭界面的操作,请你输出操作完毕后的最终状态:
当前打开的界面列表(按打开顺序由早到晚排列)
当前缓存区中的界面列表(按进入缓存区顺序由早到晚排列)
操作规则如下:
打开界面
- 若该界面已在缓存区中,则将其从缓存区移出并打开界面
- 若该界面未在缓存区中,则创建新界面并打开界面
- 若该界面已经处于打开状态,则将其移到打开列表末尾
