AlgoMooc
← 返回题库

K0088. 魔力卷轴库存管理器

中等通过率 93% · 提交 14 · 通过 13
哈希表模拟字符串

在魔法世界的云端仓库中,小慕负责管理所有魔力卷轴的库存信息。他需要实现一套库存管理系统,能够处理查询、更新和删除卷轴的指令。 系统支持以下指令:`MagicScrollManager`、`query_stock`、`update_stock`、`delete_scroll`。 --- 一、指令说明 1. 系统初始化 第一条指令必须为:


MagicScrollManager

无参数,输出:`null`。 --- 2. 查询卷轴库存 指令格式:


query_stock

行为: - 若卷轴 `` 存在 → 输出库存数量。 - 若不存在 → 输出 `-1`,并将 requestId 加入“”。 --- 3. 更新卷轴库存 指令格式:


update_stock

行为: - 若卷轴不存在 → 创建并设置库存为 ``。 - 若卷轴已存在 → 更新库存数量。 - 若存在未响应查询 → 。随后删除掉所有未响应查询 requestId 。 - 若 不存在任何未响应查询 → 输出:`-1`。 --- 4. 删除卷轴 指令:


delete_scroll

若卷轴存在则删除,否则忽略。输出:`null`。

提示:带虚线的词点一下有通俗解释。

输入描述

- 第一行输入整数 Q,表示指令总数。 - 每条指令名称单独占一行。 - 指令名后面的参数也分别独立占一行。 指令参数格式如下: - `MagicScrollManager`:无参数。 - `query_stock`:下一行输入 requestId,再下一行输入 scrollCode。 - `update_stock`:下一行输入 scrollCode,再下一行输入 quantity。 - `delete_scroll`:下一行输入 scrollCode。

输出描述

每次指令输出一行内容: - `MagicScrollManager` → 输出 `null` - `query_stock` → 输出库存数量或 `-1` - `update_stock`: - 有待处理查询 → 输出所有 requestId(空格分隔) - 无待处理查询 → 输出 `-1` - `delete_scroll` → 输出 `null`

示例

示例 1

输入

8
MagicScrollManager
update_stock
FIRE01
40
update_stock
FIRE01
90
query_stock
12
FIRE01
delete_scroll
FIRE01
query_stock
77
FIRE01
delete_scroll
FIRE01
update_stock
FIRE01
150

输出

null
-1
-1
90
null
-1
null
77

说明:MagicScrollManager 初始化系统,输出:null update_stock / FIRE01 / 40 新建卷轴 FIRE01,当前没有等待处理的查询,输出:-1 update_stock / FIRE01 / 90 更新卷轴 FIRE01 的库存为 90,仍然没有等待处理的查询,输出:-1 query_stock / 12 / FIRE01 卷轴 FIRE01 存在,库存为 90,输出:90 delete_scroll / FIRE01 删除卷轴 FIRE01,输出:null query_stock / 77 / FIRE01 卷轴 FIRE01 不存在,查询失败,输出:-1,并把请求 77 加入等待列表。 delete_scroll / FIRE01 卷轴本来就不存在,删除无效果,输出:null update_stock / FIRE01 / 150 重新创建卷轴 FIRE01,发现有等待它的查询 77,将其返回并清空等待列表,输出:77

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。