配置操作失败数量统计2026 华为OD机试真题 4月8日华为OD上机新系统考试真题 100 分题型点击查看华为 OD 机试真题完整目录2026最新华为OD机试新系统卷 双机位C卷 真题题库目录全覆盖题库 逐点算法考点详解题目描述模拟一个系统的命令行配置包含添加、修改、删除三项操作详情如下添加操作命令add_rule rule_id1 rule_index18修改操作命令mod_rule rule_id1 rule_index100删除操作命令del_rule rule_id1其中add_rule、mod_rule、del_rule是操作关键字rule_id和rule_index是属性关键字且属性取值范围为数字 1 - 9999 之间操作、属性之间都用空格进行分割。在进行所有操作时如果缺少关键字或者相应的 rule_id、rule_index的取值不符合要求则操作失败。在进行添加操作时参数必须包含 rule_id 和 rule_index,如果当前不存在则添加成功如果添加已经存在的 rule_id则操作失败。在进行修改操作时参数必须包含rule_id和rule_index如果当前rule_id不存在或前后rule_index没有变化则操作失败。在进行删除操作时参数必须包含rule_id如果当前rule_id不存在则操作失败在进行批量操作时一个命令失败后可以继续下一条命令的操作。现给有一组批量操作的字符串包括不超过 1000 条连续的操作指令格式为[cmd][cmd][cmd]请将字符串解析后按照顺序进入你实现的系统统计出配置失败的次数。2026 华为OD机试真题 4月8日华为OD上机新系统考试真题 100 分题型输入描述输入命令以空格分割输出描述输出失败命令数量示例1输入[add_rule rule_id1 rule_index9999][mod_rule rule_id1 rule_index10][del_rule rule_id1]输出0说明所有操作都成功。示例2输入[add_rule rule_id1][mod_rule rule_id1 rule_index10][del_rule rule_id1]输出3说明add操作不包含rule_index,添加失败后续修改和删除操作无对应rule_id数据也会失败。示例3输入[add_rule rule_id1 rule_index10000]输出1说明rule_index超过范围解题思路核心思想本题是一道纯模拟的题目。由于操作指令和参数是通过空格或者换行进行分割的为了正确地解析每一条命令及其参数我们可以将所有输入先拆分成一个个词token。 1.指令解析遍历所有的 token当遇到关键字add_rule、mod_rule、del_rule时说明开始了一条新指令。后续的形如kv且v是纯数字的 token 就是该指令的参数。 2.状态维护使用一个哈希表或字典rules来维护当前系统中所有的规则键为rule_id值为rule_index。 3.指令校验执行对于每一条解析出的指令和参数 -add_rule检查是否包含rule_id和rule_index检查二者是否在 $1 \sim 9999$ 范围内检查该rule_id是否已经存在。如果不满足任意条件则视为失败fail_count否则添加到哈希表中。 -mod_rule检查是否包含rule_id和rule_index检查二者是否在 $1 \sim 9999$ 范围内检查该rule_id是否已经存在并检查修改后的rule_index是否与原来不同。如果均满足则更新否则失败。 -del_rule检查是否包含rule_id检查其范围检查是否已存在于系统中。满足则从哈希表中删除否则失败。 4. 最后输出fail_count。复杂度分析时间复杂度$O(N)$其中 $N$ 为输入的单词/token 的数量。我们只需要一次遍历提取所有的指令然后再一次遍历执行它们每次执行由于使用哈希表时间开销是 $O(1)$。空间复杂度$O(N)$用于存储指令和当前已配置的规则状态哈希表最多存储不超过指令数