三重排序:频率、长度、字典序
Python
Hard
sorting
任务 «三重排序:频率、长度、字典序»
给定一个字符串列表。需要根据三个条件对字符串进行排序:首先按字符串在原始列表中出现的频率降序排列,然后按字符串长度升序排列,最后按字典序(升序,标准字符串比较)排列。如果两个字符串具有相同的频率和长度,则按字典序比较。请实现排序功能,禁止使用带有自定义键的内置 sort 函数,只能使用自定义的排序函数(例如快速排序、归并排序或其他排序算法)。输入数据:首先是一个整数 N(1 ≤ N ≤ 10^5)——字符串的数量,然后是 N 个字符串。输出排序后的字符串,每个字符串占一行。时间限制:2 秒,内存限制:256 MB。
输入格式
第一行包含一个整数 N (1 ≤ N ≤ 10^5)。接下来有 N 行,每行可以包含任意可打印字符(不含空格),字符串长度从 1 到 20 个字符。
输出格式
输出 N 行内容,按要求的顺序排列,每行单独占一行。
示例
示例 1
输入
1 10
输出
17
示例 2
输入
5
3 1 4 1 5
输出
3 1 4 1 5
main.py