Натхненний цим запитом про переповнення стека: Сортування списку: числа у зростаючому порядку, літери у низхідній формі . Ваше завдання полягає в тому, щоб вирішити наступну проблему, і, оскільки це код-гольф , ви повинні робити це якомога менше байтів.
Ви повинні взяти список об'єктів , як вхідні дані, що містять букви (будь-яку розумну форма: string
, char
і т.д.) і число. Потім слід сортувати цифри у порядку зростання, а літери - у порядку зменшення. Однак вам слід зберігати літери в позиціях літер, а цифри - у позиціях цифр. Наприклад, якщо список:
[L, D, L, L, D, L]
Список вихідних даних має бути у вигляді:
[L, D, L, L, D, L]
Проведення роботи
Вхід: ['a', 2, 'b', 1, 'c', 3]
- Сортуйте числа у порядку зростання:
[1, 2, 3]
- Сортуйте літери у порядку зменшення:
['c', 'b', 'a']
- Приєднуйтесь до них, але дотримуйтесь порядку:
['c', 1', 'b', 2, 'a', 3]
Правила
- Список буде містити лише літери та цифри.
- Список може бути порожнім.
- Список може містити лише літери або лише цифри.
- Якщо ваша мова не підтримує масиви змішаного типу, ви можете використовувати цифри, а не цифри. Зауважте, що якщо ваша мова підтримує це, ви повинні використовувати змішані типи.
- Букви будуть лише,
[a-z]
або[A-Z]
ви можете вибрати, які саме. - Букви сортуються як
a
найнижчі,z
найвищі, тобтоa = 1, z = 26
. - Стандартні лазівки заборонені.
- Введення / виведення може бути будь-яким стандартним способом, включаючи рядок.
Тестові справи
[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]
Оскільки це код-гольф, найкоротша відповідь у байтах виграє!