按长度和字典序对字符串进行排序

C# Hard sorting

任务 «按长度和字典序对字符串进行排序»

给定一个包含由空格分隔的单词的字符串。需要先按单词长度升序排序,若长度相同则按字典序降序排序。输出排序后的单词,以空格分隔。限制条件:字符串长度不超过10^5个字符,单词由小写拉丁字母组成。解决方案应高效,并使用内置排序方法。

输入格式

一行包含小写拉丁字母单词的字符串,单词之间恰好由一个空格分隔。字符串长度不超过100000个字符。

输出格式

字符串,包含相同的单词,按长度升序排序,长度相同时按字典序降序排列。单词之间恰好用一个空格分隔。

示例

示例 1

输入
cat dog apple banana
输出
dog cat apple banana

示例 2

输入
a bb ccc dd
输出
a dd bb ccc

示例 3

输入
5 12 34 21 43 15
输出
5

示例 4

输入
{"a":1,"b":{"c":2}} {"a":2,"b":{"d":3}}
输出
{"a":1,"b":{"c":2}}
main.cs