Lấy cảm hứng từ câu hỏi Stack Overflow này: Sắp xếp danh sách: các số tăng dần, các chữ cái giảm dần . Nhiệm vụ của bạn là giải quyết vấn đề sau và, vì đây là môn đánh gôn , bạn nên làm như vậy với càng ít byte càng tốt.
Bạn nên dành một danh sách các đối tượng như là đầu vào có chứa chữ cái (bất cứ hình thức hợp lý: string
, char
, vv) và số. Sau đó, bạn nên sắp xếp các số theo thứ tự tăng dần và các chữ cái theo thứ tự giảm dần. Tuy nhiên, bạn nên giữ các chữ cái ở vị trí chữ cái và số ở vị trí số. Ví dụ: nếu danh sách là:
[L, D, L, L, D, L]
Danh sách đầu ra phải ở dạng:
[L, D, L, L, D, L]
Làm việc suốt
Đầu vào: ['a', 2, 'b', 1, 'c', 3]
- Sắp xếp các số theo thứ tự tăng dần:
[1, 2, 3]
- Sắp xếp các chữ cái theo thứ tự giảm dần:
['c', 'b', 'a']
- Tham gia cùng họ trở lại nhưng giữ trật tự như cũ:
['c', 1', 'b', 2, 'a', 3]
Quy tắc
- Danh sách sẽ chỉ chứa các chữ cái và chữ số.
- Danh sách có thể trống.
- Danh sách chỉ có thể chứa chữ cái hoặc chỉ chữ số.
- Nếu ngôn ngữ của bạn không hỗ trợ mảng kiểu hỗn hợp, bạn có thể sử dụng các ký tự chữ số thay vì số. Lưu ý rằng nếu ngôn ngữ của bạn không hỗ trợ điều này, bạn phải sử dụng các loại hỗn hợp.
- Thư sẽ chỉ
[a-z]
hoặc[A-Z]
, bạn có thể chọn cái nào. - Chữ cái được sắp xếp là
a
thấp nhất,z
tức là cao nhấta = 1, z = 26
. - Sơ hở tiêu chuẩn bị cấm.
- I / O có thể bằng bất kỳ phương tiện tiêu chuẩn nào, bao gồm cả dưới dạng chuỗi.
Các trường hợp thử nghiệm
[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]
Vì đây là code-golf , câu trả lời ngắn nhất trong byte thắng!