Défi:
Étant donné une liste d'entiers, trier par ordre décroissant par leur seul chiffre le plus grand. L'ordre des nombres avec le même plus grand chiffre est ensuite trié par deuxième plus grand chiffre, etc.
Nous ignorons les chiffres dupliqués dans les nombres. Et si tous les chiffres d'un numéro sont identiques, l'ordre de ces numéros dans la liste peut être comme vous le souhaitez.
Exemple:
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]
Pourquoi? Voici les chiffres pertinents sur lesquels les numéros ont été triés:
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]]
Règles du défi:
- Nous ignorons les chiffres en double, donc
478
et-7738
seront classés comme478, -7738
, car les plus gros chiffres sont[8,7,4]
et[8,7,3]
, et non[8,7,4]
et[8,7,7,3]
. - Si plusieurs numéros ont les mêmes chiffres, l'ordre de ceux-ci peut être dans les deux sens. Donc,
373
et-73
peut être trié comme les deux373, -73
ou-73, 373
(les chiffres correspondent[7,3]
à ces deux nombres). - Si un numéro ne contient plus de chiffres à vérifier, il sera placé à l'arrière des numéros concernés. Donc,
123
et3120
sera trié comme3120, 123
, car les plus gros chiffres[3,2,1]
sont les mêmes, mais0
vient avantnone
. - Vous pouvez supposer que tous les nombres en entrée sont dans la plage
[-999999,999999]
. - Une seule des sorties possibles suffit en conséquence, mais vous êtes autorisé à sortir toutes les sorties possibles où les sous-listes peuvent être dans n'importe quelle permutation si vous le souhaitez (bien que je doute que cela économiserait des octets dans n'importe quelle langue).
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues autres que le golf de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse avec des règles d'E / S par défaut , vous êtes donc autorisé à utiliser STDIN / STDOUT, des fonctions / méthodes avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code (par exemple TIO ).
- De plus, l'ajout d'une explication à votre réponse est fortement recommandé.
Cas de test:
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./
pour.abs.comb
: tio.run/…