AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

K0015. 魔法数字格式化

中等通过率 47% · 提交 261 · 通过 122
模拟哈希表字符串排序

小慕在整理一份神秘的魔法数字档案时,发现每个数字都蕴含着独特的能量。为了让这些数字在档案中既有序又唯一,他需要施加一种特殊的格式化魔法。 给定一个单词和一个数字列表,小慕需要按顺序对每个数字进行格式化处理。列表中可能包含单独的数字,也可能包含(例如 `9-11`)。他的任务是将这些数字按特定规则转换为唯一且格式化的字符串。 扩展范围:如果数字列表中有范围(如 `9-11`),将范围拆解成连续的数字。例如,`9-11` 拆解为 `[9, 10, 11]`。 处理重复数字: 对于每个数字,检查是否已经出现过。 如果已经出现过,则给这个数字,从 `0001` 开始。

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

输入描述

- 第一行:一个字符串 `word`,表示单词。 - 第二行:一个整数 `n`,表示数字列表中的元素个数。 - 接下来 `n` 行,每行包含一个字符串,表示数字或数字范围。 - 如果是单独的数字,则格式为 `数字`。 - 如果是数字范围,则格式为 `数字-数字`。 - `word`的长度不超过10 - 数字总数不会超过9999,并且都在范围`1-9999`中

输出描述

输出多行,每行一个字符串,格式为 `单词-数字`。如果某个数字重复出现,则按递增的后缀输出。每个后缀是一个4位整数,不足4位用0来填充。

示例

示例 1

输入

word
5
1
10
9-11
9999
9999

输出

word-0001
word-0010
word-0009
word-0011
word-0012
word-9999
word-0002

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

看不懂题目?点开图解
魔法数字格式化流程示例 输入 word 1, 10, 9-11, 9999, 9999 步骤1:扩展范围 9-11 → 9,10,11 得到序列: 1,10,9,10,11,9999,9999 步骤2 处理重复 输出 word-0001 word-0010 word-0009 word-0011 word-0012 word-9999 word-0002
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「魔法数字格式化」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。