Вдохновленный этим вопросом переполнения стека: сортировка списка: числа по возрастанию, буквы по убыванию . Ваша задача - решить следующую проблему, и, поскольку это код-гольф , вы должны делать это как можно меньше байтов.
Вы должны взять список объектов , как входные данные, содержащие буквы (любую разумную форма: 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]
Поскольку это код-гольф, выигрывает самый короткий ответ в байтах!