1. 程式人生 > 其它 >邏輯演算法題

邏輯演算法題

磁碟的容量單位有M、G、T,其關係為 1T = 1000G、1G = 1000M,
如樣例所示先輸入磁碟的個數,再依次輸入磁碟的容量大小,然後按照從小到大的順序對磁碟容量進行排序並輸出。
相同大小的先輸入的先輸出

輸入
3
20M
1T
300G
輸出
20M
300G
1T
------------------------------------------------------------------------------------------------------
import sys
N = int(sys.stdin.readline().strip())
res = {}
Mnum = 0
Gnum = 0
Tnum = 0
Anum = 0
for i in range(N):
    tmp = 0
    Mnum =0
    Gnum = 0
    Tnum = 0
    line = sys.stdin.readline().strip()
    for value in range(len(line)):
        if line[value] == 'M':
            Mnum += int(line[tmp:value])
            tmp = value+1
        if line[value] == 'G':
            Gnum += int(line[tmp:value])
            tmp = value+1
        if line[value] == 'T':
            Tnum += int(line[tmp:value])
            tmp = value+1
    Anum = Tnum*1024*1024 + Gnum*1024 + Mnum
    res[line] = Anum
print("res = ", res)
pri = sorted(res.items(), key=lambda x: x[1])
for i in range(len(pri)):
    print(pri[i][0])