通过率 100% · 提交 5 · 通过 5
小慕正在开发一个简易版的消息系统,该系统允许用户消息,同时支持订阅和取消订阅其他用户(默认情况下,每个用户已经订阅了自己)。 在这个系统中,每个用户都由一个唯一的`UserID`标识,每条消息也有一个唯一的`MsgID`。请实现以下功能: | 序号 | 方法 | 返回值 | 说明 | | - | - | - | - | | 1 | `Brocast(UserID, MsgID)` | 返回发送的消息条数 | `UserID`对应的用户广播了一条编号为`MsgID`的新消息 | | 2 | `GetMsg(UserID, N)` | 返回最近的N条消息 | 获取`UserID`对应的用户接收到的消息,并按照消息出现的先后。如果不足N条,则按实际条数输出;如果没有任何消息,则返回`-1` | | 3 | `Subscribe(UserID1, UserID2)` | 返回订阅状态 | `0`表示订阅成功,`1`表示重复订阅,`2`表示不能订阅自己。`UserID1`订阅了`UserID2`,意味着`UserID2`广播的消息在订阅生效后,`UserID1`也能收到 | | 4 | `UnSubscribe(UserID1, UserID2)` | 返回取消订阅状态 | `0`表示取消成功,`1`表示取消失败(因为不存在该订阅关系),`2`表示失败(不能取消对自己的订阅)。当`UserID1`取消对`UserID2`的订阅后,`UserID1`将不再接收到`UserID2`广播的消息 | 所有指令按时间顺序输入,用户广播的消息将被系统永久存储,不会丢失。订阅关系一旦建立,用户可以查询到目标用户之前发送的消息。
这类题属于华为校招机考方向中「可信 / 哈希表」方向的高频题型,通常考察对「可信 / 哈希表」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有