Inspiré de cette question Stack Overflow: Tri d'une liste: chiffres en ordre croissant, lettres en ordre décroissant . Votre tâche consiste à résoudre le problème suivant et, comme il s'agit de code-golf , vous devez le faire en aussi peu d'octets que possible.
Vous devez prendre une liste d'objets en entrée contenant des lettres (toute forme raisonnable: string
, char
, etc.) et des chiffres. Vous devez ensuite trier les chiffres dans l'ordre croissant et les lettres dans l'ordre décroissant. Cependant, vous devez conserver les lettres dans les positions des lettres et les chiffres dans les positions des nombres. Par exemple, si la liste est:
[L, D, L, L, D, L]
La liste de sortie doit être sous la forme de:
[L, D, L, L, D, L]
Se sortir de
Contribution: ['a', 2, 'b', 1, 'c', 3]
- Triez les nombres par ordre croissant:
[1, 2, 3]
- Trier les lettres par ordre décroissant:
['c', 'b', 'a']
- Rejoignez-les mais gardez la même commande:
['c', 1', 'b', 2, 'a', 3]
Règles
- La liste ne contiendra que des lettres et des chiffres.
- La liste est peut-être vide.
- La liste ne peut contenir que des lettres ou uniquement des chiffres.
- Si votre langue ne prend pas en charge les tableaux de types mixtes, vous pouvez utiliser des caractères numériques au lieu de chiffres. Notez que si votre langue le prend en charge, vous devez utiliser des types mixtes.
- Les lettres ne seront que
[a-z]
ou[A-Z]
, vous pouvez choisir laquelle. - Les lettres sont triées comme
a
étant les plus basses, lesz
plus élevées c'est-à-direa = 1, z = 26
. - Les failles standard sont interdites.
- Les E / S peuvent être effectuées par n'importe quel moyen standard, y compris sous forme de chaîne.
Cas de test
[5, 'a', 'x', 3, 6, 'b'] -> [3, 'x', 'b', 5, 6, 'a']
[ 3, 2, 1] -> [ 1, 2, 3 ]
[ 'a', 'b', 'c' ] -> [ 'c', 'b', 'a' ]
[] -> []
[ 2, 3, 2, 1 ] -> [1, 2, 2, 3]
Comme il s'agit de code-golf, la réponse la plus courte en octets gagne!