Sortierung von Zeichenketten nach Länge und lexikografisch

C# Hard sorting

Aufgabe «Sortierung von Zeichenketten nach Länge und lexikografisch»

Gegeben ist eine Zeichenkette, die durch Leerzeichen getrennte Wörter enthält. Die Wörter müssen zuerst aufsteigend nach Länge und bei gleicher Länge in lexikografischer Reihenfolge (absteigend) sortiert werden. Die sortierten Wörter werden durch Leerzeichen getrennt ausgegeben. Einschränkungen: Die Länge der Zeichenkette überschreitet 10^5 Zeichen nicht, die Wörter bestehen aus Kleinbuchstaben des lateinischen Alphabets. Die Lösung soll effizient sein und integrierte Sortiermethoden verwenden.

Eingabeformat

Eine Zeichenkette, die Wörter aus Kleinbuchstaben des lateinischen Alphabets enthält, getrennt durch genau ein Leerzeichen. Die Länge der Zeichenkette beträgt nicht mehr als 100000 Zeichen.

Ausgabeformat

Eine Zeichenkette, die dieselben Wörter enthält, sortiert aufsteigend nach Länge und bei gleicher Länge in lexikografischer Reihenfolge absteigend. Die Wörter werden durch genau ein Leerzeichen getrennt.

Beispiele

Beispiel 1

EINGABE
cat dog apple banana
AUSGABE
dog cat apple banana

Beispiel 2

EINGABE
a bb ccc dd
AUSGABE
a dd bb ccc

Beispiel 3

EINGABE
5 12 34 21 43 15
AUSGABE
5

Beispiel 4

EINGABE
{"a":1,"b":{"c":2}} {"a":2,"b":{"d":3}}
AUSGABE
{"a":1,"b":{"c":2}}
main.cs