Herausforderung:
Sortieren Sie bei einer Liste mit Ganzzahlen absteigend nach den größten einzelnen Ziffern. Die Reihenfolge für Zahlen mit der gleichen größten Ziffer wird dann nach der zweitgrößten Ziffer usw. sortiert.
Doppelte Ziffern in Zahlen werden ignoriert. Und wenn alle Ziffern einer Nummer gleich sind, kann die Reihenfolge dieser Nummern in der Liste beliebig sein.
Beispiel:
Input: [123, 478, -904, 62778, 0, -73, 8491, 3120, 6458, -7738, 373]
Possible outputs: [8491, -904, 62778, 478, -7738, 6458, 373, -73, 3120, 123, 0]
[8491, -904, 62778, 478, -7738, 6458, -73, 373, 3120, 123, 0]
Warum? Hier sind die relevanten Ziffern, nach denen die Nummern sortiert wurden:
Output:
[8491, -904, 62778, 478, -7738, 6458, 373, -73, 3120, 123, 0 ]
Relevant digits they were sorted on:
[[9,8], [9,4], [8,7,6], [8,7,4], [8,7,3], [8,6], [7,3], [7,3], [3,2,1,0], [3,2,1], [0]]
Herausforderungsregeln:
- Wir ignorieren doppelte Ziffern
478
und-7738
werden als geordnet478, -7738
, da die größten Ziffern[8,7,4]
und[8,7,3]
und nicht[8,7,4]
und sind[8,7,7,3]
. - Wenn mehrere Nummern die gleichen Ziffern haben, kann die Reihenfolge dieser so oder so sein. So
373
und-73
kann als beide373, -73
oder sortiert werden-73, 373
(Ziffern sind[7,3]
für beide dieser Nummern). - Wenn eine Nummer keine weiteren zu überprüfenden Ziffern enthält, wird sie hinter den entsprechenden Nummern platziert. Also
123
und3120
wird sortiert wie3120, 123
, da die größten Ziffern gleich[3,2,1]
sind, aber0
vorher kommennone
. - Sie können davon ausgehen, dass alle Zahlen in der Eingabe im Bereich liegen
[-999999,999999]
. - Nur eine der möglichen Ausgaben ist als Ergebnis ausreichend, aber Sie können alle möglichen Ausgaben ausgeben, bei denen sich Unterlisten in einer beliebigen Permutation befinden können, wenn Sie dies wünschen (obwohl ich bezweifle, dass dadurch Bytes in einer beliebigen Sprache gespart werden).
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Für Ihre Antwort gelten Standardregeln mit Standard-E / A-Regeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp, verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu (z. B. TIO ).
- Außerdem wird dringend empfohlen, eine Erklärung für Ihre Antwort hinzuzufügen.
Testfälle:
Input: [123, 478, -904, 62778, 0, -73, 8491, 3120, 6458, -7738, 373]
Possible outputs: [8491, -904, 62778, 478, -7738, 6458, 373, -73, 3120, 123, 0]
[8491, -904, 62778, 478, -7738, 6458, -73, 373, 3120, 123, 0]
Input: [11, -312, 902, 23, 321, 2132, 34202, -34, -382]
Possible outputs: [902, -382, 34202, -34, -312, 321, 2132, 23, 11]
[902, -382, 34202, -34, 2132, -312, 321, 23, 11]
etc. The sublist [-312, 321, 2132] can be in any permutation
Input: [9, 44, 2212, 4, 6, 6, 1, 2, 192, 21, 29384, 0]
Possible outputs: [29384, 192, 9, 6, 6, 4, 44, 2212, 21, 2, 1, 0]
[29384, 192, 9, 6, 6, 44, 4, 2212, 21, 2, 1, 0]
etc. The sublists [4, 44] and [2212, 21] can be in any permutation
Input: [44, -88, 9, 233, -3, 14, 101, 77, 555, 67]
Output: [9, -88, 67, 77, 555, 14, 44, 233, -3, 101]
m:g/\d./
für.abs.comb
: tio.run/…