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

K0036. 魔法学徒编号

中等通过率 38% · 提交 265 · 通过 101
字符串模拟排序哈希表

小慕在整理项目中的用户编号时,发现由于系统故障,这些编号变得混乱不堪,急需进行清理。 请你帮小慕判断哪些编号是合法的,并对合法编号进行格式化。 合法用户编号规则: - 去除所有空格后,编号长度不超过9。 - 首字符必须是字母,其余字符均为数字(至少包含一个数字)。 格式化要求(格式化后示例:a00012345): - 编号首字母统一规整成小写字符。 - 去除所有空格。 - 若编号长度不足9位,在数字前面,使编号长度恰好为9。 请对格式化后的合法编号后,按照升序输出。

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

输入描述

第一行包含一个整数 `N`,表示待整理的编号个数,取值范围:`1 <= N < 100`。 接下来 `N` 行,每行包含一个字符串,表示待整理的魔法学徒编号(长度不超过 `20`)。

输出描述

按照字典序升序输出规整后的合法编号,每个编号占一行。

示例

示例 1

输入

8
ss789
12n00
s00123
k2 3490
S123
s234
x235
m990

输出

k00023490
m00000990
s00000123
s00000234
x00000235

说明:- `12n00` 非法,丢弃。 - `S00123` 和 `S123` 经过格式化后相同,去重。 - 字典序排序即按照首字母排序,若首字母相同则比较后续字符,类似于字典查找顺序。

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

看不懂题目?点开图解
魔法学徒编号处理流程 输入编号(如 S123) 判断合法: 去空格后长度≤9,首字母+后续数字 合法 格式化: 首字母小写,去空格,数字补零到9位 去重后按字典序升序输出 非法 丢弃
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「魔法学徒编号」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。