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

P2553. 磁盘容量

中等通过率 51% · 提交 518 · 通过 264
排序字符串模拟

小慕在整理一批磁盘的容量数据,常用的单位有 M、G、T,它们之间的换算关系是 1T = 1024G,1G = 1024M。 现在小慕拿到了 n 块磁盘的容量,需要将它们按从小到大的顺序进行。 例如,小慕手中有 5 块磁盘,容量分别为 1T、20M、3G、10G6T、,排序后的结果为 20M、3G、3M12G9M、1T、10G6T。 需要注意的是,单位可以重复出现,例如 3M12G9M 表示的容量与 12M12G 相等。 所谓稳定排序,指的是对于大小相同的元素,应该按照它们在原先数组中的位置进行排序。

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

输入描述

<div data-page-id="GvOIdLOxVoUmoyxCkwSc55PKnth" data-docx-has-block-data="false"> <div style="white-space-collapse:preserve;" class="ace-line ace-line old-record-id-AOIPdRtXeoXNg0xFVaYcn8E2npc"> 输入第一行包含一个整数<code>n</code>,<code>2 <= n <= 100</code>,表示磁盘的个数。 </div> <div style="white-space-collapse:preserve;" class="ace-line ace-line old-record-id-BOtZdopGFozSZQxkxaEc4YMRnNg"> 接下来的 <code>n</code> 行,每行一个字符串,<code>2 < 长度 < 30</code>,表示磁盘的容量,由一个或多个格式为<code>MV</code>的子串组成,其中<code>M</code>表示容量大小,<code>V</code>表示容量单位,例如<code>20M</code>、<code>1T</code>。 </div> <div style="white-space-collapse:preserve;" class="ace-line ace-line old-record-id-AKAgdX73moFBFbxoF1scXvZ1nJf"> 磁盘容量的范围是<code>1 ~ 1024</code>的正整数,单位<code>M</code>、<code>G</code>、<code>T</code>。 </div> </div>

输出描述

输出n行,表示n块磁盘容量排序后的结果

示例

示例 1

输入

3
1G
2G
1024M

输出

1G
1024M
2G

说明:稳定排序要求相等值保留原来位置。

示例 2

输入

3
2G4M
3M2G
1T

输出

3M2G
2G4M
1T

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

看不懂题目?点开图解
磁盘容量排序示例 输入(乱序) 1T 20M 3G 10G6T 3M12G9M 换算为统一单位(M) 1T = 1024G = 1048576M 20M = 20M 3G = 3072M 10G6T = 10G + 6T = 6154240M 3M12G9M = 12M + 12G = 12300M 输出(排序后) 20M 3G 3M12G9M 1T 10G6T 稳定排序:相等值保持原顺序(如 3M12G9M 和 1T 大小不同,按数值排)
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「磁盘容量」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。