Bootstrap

华为OD E卷 #5 数组去重排序

题目

给定一个乱序的数组,删除所有的重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低进行排序,相同出现次数按照第一次出现顺序进行先后排序。

输入描述 一个数组

输出描述 去重排序后的数组

用例

输入	
1,3,3,3,2,4,4,4,5
输出	
3,4,1,2,5
备注	数组大小不超过100 数组元素值大小不超过100。
from collections import Counter

input_str = input()
nums = list(map(int, input_str.split(',')))

# 使用Counter直接统计频率
frequency_map = Counter(nums)

# 排序:先按频率降序,再按值升序
sorted_nums = sorted(frequency_map, key=lambda x: (-frequency_map[x], x))

# 输出结果
print(','.join(map(str, sorted_nums)))

;