通过率 76% · 提交 63 · 通过 48
在古老的 奥术帝国,一座隐藏于浮空岛的 魔法图书馆 收藏着无数奥秘的魔法书籍。这些书籍承载着远古知识,必须使用 特定的魔法关键词 才能激活并读取内容。 大贤者 阿尔萨尼斯 受命创建一座 魔法书灵搜索仪,用于管理 书籍与魔法关键词的,并能高效检索符合查询条件的魔法书籍。 作为一名 魔法工程师,你需要帮助阿尔萨尼斯完成这个伟大的仪式,确保所有魔法书籍能够正确归档,并在需要时被迅速召唤。 你需要实现一个魔法搜索系统,该系统维护 书籍ID 与 魔法关键词 的绑定关系,并支持以下三种指令: 1. `addWord book_id words` - 向书籍 `book_id` 绑定 `words`。 - 如果 `book_id` 尚未被登记,则新建该书籍并绑定 `words`; - 如果 `book_id` 已存在,则向其添加 `words`(不能重复)。 - 返回 该书籍当前绑定的 关键词总数。 2. `delWord book_id words` - 从书籍 `book_id` 中移除 `words`。 - 如果 `book_id` 或 `words` 不存在,则无操作; - 如果 `book_id` 绑定的所有关键词都被删除,则从系统中移除该 `book_id`。 - 返回 该书籍当前绑定的 关键词总数(若 `book_id` 不存在,则返回 `0`)。 3. `query words` - 查询包含所有 `words` 的书籍 `book_id`。 - 以 返回所有满足条件的书籍 `book_id`。 - 若无匹配,返回 `-1`。 输入: - 第一行 输入整数 `Q`,表示指令的数量。 - 接下来的 `Q` 组指令,每组格式如下: - `"SearchEngine"` (仅在第一行出现,表示,输出 `"null"`) - `"addWord"` - `book_id`(书籍ID) - `n`(关键词数量) - `n` 个 魔法关键词 - `"delWord"` - `book_id`(书籍ID) - `m`(待删除的关键词数量) - `m` 个 待删除的魔法关键词 - `"query"` - `k`(查询关键词数量) - `k` 个 查询的魔法关键词 输出: - 对于 `"SearchEngine"` 指令,输出 `"null"`。 - 对于 `"addWord"` 和 `"delWord"` 指令,输出该 `book_id` 当前绑定的 关键词总数。 - 对于 `"query"` 指令,按 升序 输出所有符合条件的 `book_id`,以 空格 分隔;若无匹配,输出 `-1`。
这类题属于华为可信认证科目一方向中「可信 / 系统设计」方向的高频题型,通常考察对「可信 / 系统设计」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
Q,表示指令的数量。Q 组指令,每组格式如下:
"SearchEngine" (仅在第一行出现,表示系统初始化,输出 "null")"addWord"
book_id(书籍ID)n(关键词数量)n 个 魔法关键词"delWord"
book_id(书籍ID)m(待删除的关键词数量)m 个 待删除的魔法关键词"query"
k(查询关键词数量)k 个 查询的魔法关键词"SearchEngine" 指令,输出 "null"。"addWord" 和 "delWord" 指令,输出该 book_id 当前绑定的 关键词总数。"query" 指令,按 升序 输出所有符合条件的 book_id,以 空格 分隔;若无匹配,输出 -1。示例 1
输入示例
9 SearchEngine addWord 1 2 fireball lightning addWord 2 2 fireball lightning query 2 fireball lightning delWord 1 1 fireball query 2 fireball lightning query 1 lightning delWord 2 1 fireball query 2 fireball lightning
输出示例
null 2 2 1 2 1 2 1 2 1 -1
初始化搜索系统
SearchEngine,系统创建完成。"null"。向 1 号书籍绑定 "fireball" 和 "lightning"
1 号书籍现在绑定了 {fireball, lightning},共 2 个关键词。2(当前 1 号书籍的关键词总数)。向 2 号书籍绑定 "fireball" 和 "lightning"
2 号书籍现在绑定 {fireball, lightning},共 2 个关键词。2。查询包含 "fireball" 和 "lightning" 的书籍
1 号书籍 同时 绑定了 "fireball" 和 "lightning"。2 号书籍 同时 绑定了 "fireball" 和 "lightning"。删除 1 号书籍中的 "fireball"
1 号书籍现在只剩 {lightning}。1(1 号书籍的关键词总数)。查询包含 "fireball" 和 "lightning" 的书籍
1 号书籍 不再 绑定 "fireball",只剩 "lightning",所以 不符合查询。2 号书籍 仍然绑定 {fireball, lightning},所以 符合查询。2。查询包含 "lightning" 的书籍
1 号书籍 绑定 {lightning},符合条件。2 号书籍 绑定 {fireball, lightning},也符合条件。删除 2 号书籍中的 "fireball"
2 号书籍 现在只剩 {lightning}。1(2 号书籍的关键词总数)。查询包含 "fireball" 和 "lightning" 的书籍
1 号书籍 只绑定 {lightning},不符合查询条件。2 号书籍 只绑定 {lightning},不符合查询条件。-1:时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有