受此堆栈溢出问题的启发:对列表进行排序:数字以升序排列,字母以降序排列。您的任务是解决以下问题,并且由于这是code-golf,因此应尽可能减少字节。
你应该采取的对象为包含字母输入的列表(任何合理形式: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
。 - 禁止出现标准漏洞。
- I / O可以通过任何标准方式包括字符串形式。
测试用例
[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]
因为这是代码高尔夫球,所以最短的答案以字节为单位!