Inspirado por esta pregunta de desbordamiento de pila: ordenar una lista: números en forma ascendente, letras en forma descendente . Su tarea es resolver el siguiente problema y, como se trata de código de golf , debe hacerlo en el menor número de bytes posible.
Debe tomar una lista de objetos como de entrada que contiene las letras (en cualquier forma razonable: string
, char
, etc) y los números. Luego debe ordenar los números en orden ascendente y las letras en orden descendente. Sin embargo, debe mantener letras en posiciones de letras y números en posiciones de números. Por ejemplo, si la lista es:
[L, D, L, L, D, L]
La lista de salida debe tener la forma de:
[L, D, L, L, D, L]
Trabajar a través
Entrada: ['a', 2, 'b', 1, 'c', 3]
- Ordena los números en orden ascendente:
[1, 2, 3]
- Ordena las letras en orden descendente:
['c', 'b', 'a']
- Únete a ellos pero mantén el orden igual:
['c', 1', 'b', 2, 'a', 3]
Reglas
- La lista solo contendrá letras y dígitos.
- La lista puede estar vacía.
- La lista solo puede contener letras o solo dígitos.
- Si su idioma no admite matrices de tipo mixto, puede usar caracteres de dígitos en lugar de números. Tenga en cuenta que si su idioma lo admite, debe usar tipos mixtos.
- Las letras solo serán
[a-z]
o[A-Z]
, puede elegir cuál. - Las letras se ordenan como las
a
más bajas,z
es decir , las más altasa = 1, z = 26
. - Las lagunas estándar están prohibidas.
- La E / S puede ser por cualquier medio estándar, incluso como una cadena.
Casos de prueba
[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]
Como se trata de código golf, ¡ la respuesta más corta en bytes gana!