中兴 2019 算法笔试 (员工工资按频数排序输出)

图片由网上提供仅供参考:

1.本地测试代码:

def sortsalary(lis):
    dict={}
    for i in range(len(lis)):
        if lis[i] not in dict:
            dict[lis[i]] = 0
        if lis[i] in dict:
            dict[lis[i]] += 1
    sot= sorted(dict.keys(), key=(lambda k: dict[k]),reverse=True)
    res = []
    print(sot)
    for i in range(len(sot)):
        res = res + [sot[i]] * dict[sot[i]]
    return res
if __name__ == '__main__':
    lis=[4,3,3,3,1,1,5,5,0,0]
    print(sortsalary(lis))

中兴 2019 算法笔试 (员工工资按频数排序输出)_第1张图片

2.手动输入读取测试用例代码:

import sys
def sortsalary(lis):
    dict={}
    for i in range(len(lis)):
        if lis[i] not in dict:
            dict[lis[i]] = 0
        if lis[i] in dict:
            dict[lis[i]] += 1
    sot= sorted(dict.keys(), key=(lambda k: dict[k]),reverse=True)
    res = []
    print(sot)
    for i in range(len(sot)):
        res = res + [sot[i]] * dict[sot[i]]
    return res
if __name__ == '__main__':
    #lis=[4,3,3,3,1,1,5,5,0,0]
    #print(sortsalary(lis))
    m = int(sys.stdin.readline().strip())  # 读取一行
    line2 = sys.stdin.readline().strip()
    lis = list(map(int, line2.split()))
    print(sortsalary(lis))

中兴 2019 算法笔试 (员工工资按频数排序输出)_第2张图片

 

 

你可能感兴趣的:(算法,数据结构,Python)