華為OD機(jī)試-- 磁盤容量排序

題目
題目描述:
磁盤的容量單位常用的有M,G,T這三個(gè)等級(jí),它們之間的換算關(guān)系為1T = 1024G,1G = 1024M,
現(xiàn)在給定n塊磁盤的容量,請(qǐng)對(duì)它們按從小到大的順序進(jìn)行穩(wěn)定排序,
例如給定5塊盤的容量,1T,20M,3G,10G6T,3M12G9M排序后的結(jié)果為20M,3G,3M12G9M,1T,10G6T。
注意單位可以重復(fù)出現(xiàn),上述3M12G9M表示的容量即為3M+12G+9M,和12M12G相等。
輸入描述:
輸入第一行包含一個(gè)整數(shù)n(2 <= n <= 100),表示磁盤的個(gè)數(shù),
接下的n行,每行一個(gè)字符串(長(zhǎng)度大于2,小于30),表示磁盤的容量,
由一個(gè)或多個(gè)格式為mv的子串組成,其中m表示容量大小,v表示容量單位,
例如20M,1T,30G,10G6T,3M12G9M。
磁盤容量m的范圍為1到1024的正整數(shù),容量單位v的范圍只包含題目中提到的M,G,T三種,換算關(guān)系如題目描述。
輸出描述:
輸出n行,表示n塊磁盤容量排序后的結(jié)果。
示例 1:
輸入
3
1G
2G
1024M
輸出
1G
1024M
2G
說明
1G和1024M容量相等,穩(wěn)定排序要求保留它們?cè)瓉淼南鄬?duì)位置,故1G在1024M之前
示例 2:
輸入
3
2G4M
3M2G
1T
輸出
3M2G
2G4M
1T
說明
1T的容量大于2G4M,2G4M的容量大于3M2G
思路
1:算是送分題了,難點(diǎn)應(yīng)該在于處理字符串算出總量大小,細(xì)節(jié)就在于需要一個(gè)變量,在找到GMT字符之前,先保存數(shù)字的大小。
2:算好大小之后就是排序了。
Java 實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/128153550
Python實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/128385136
C++ 實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/127172608
JavaScript實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/131972490
C實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/131524092