Lý lịch
Trong C, có một hàm giúp phân tích các đối số dòng lệnh : getopt
.
Getopt lấy số đối số ( argc
), danh sách đối số ( argv
) và một chuỗi đại diện cho các tùy chọn mà chương trình sẽ lấy ( optstring
).
Chuỗi tùy chọn ( optstring
) là một chuỗi các ký tự tùy chọn được theo sau bởi một dấu hai chấm (đối với tùy chọn yêu cầu đối số), hai dấu hai chấm (đối với tùy chọn có đối số tùy chọn) hoặc dấu hai chấm (đối với tùy chọn không có đối số).
Ví dụ: người ta có thể sử dụng chuỗi tùy chọn sau cho tiện ích mới của công ty họ.
"v::x:hy:S:G::dns:f::"
Nhưng trông thật kinh khủng! Các tùy chọn được trộn lẫn với nhau! Chuỗi tùy chọn này sẽ trông tốt hơn nhiều nếu được sắp xếp:
"f::G::v::S:s:x:y:dhn"
Thông số kỹ thuật
Đầu vào sẽ là một chuỗi khớp với biểu thức chính quy
([A-Za-z]:{0,2})+
Bạn nên lấy đầu vào dưới dạng một chuỗi hoặc danh sách các ký tự.
Bạn nên xuất chuỗi được sắp xếp theo phương pháp chi tiết bên dưới.
Bạn không cần phải xử lý đầu vào trống.
Bạn không cần xử lý đầu vào với các tùy chọn lặp lại cùng loại (
"aa"
không hợp lệ, nhưng"aa:a::"
hợp lệ).
Phương pháp sắp xếp
Trong chuỗi tùy chọn đã sắp xếp:
Các ký tự theo sau bởi hai dấu hai chấm xuất hiện trước, được sắp xếp theo thứ tự abc, với các chữ cái viết hoa trước các chữ cái viết thường tương ứng của chúng (tức là "aBb", không phải "Bab").
Sau đó là các ký tự có một dấu hai chấm, được sắp xếp theo thứ tự abc, với các chữ cái viết hoa trước các chữ cái viết thường tương ứng của chúng.
Cuối cùng là các ký tự không có dấu hai chấm, được sắp xếp theo thứ tự abc, với các chữ cái viết hoa trước các chữ cái viết thường tương ứng của chúng.
Quy tắc
- Lỗ hổng tiêu chuẩn bị cấm.
Chấm điểm
Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất tính bằng byte trong mỗi ngôn ngữ sẽ thắng.
Ví dụ
# "input" => "output"
"v::x:hy:S:G::dns:f::" => "f::G::v::S:s:x:y:dhn"
"aa:a::" => "a::a:a"
"B:" => "B:"
"Confusio:n::" => "n::o:Cfinosu"
"Confusio:n:" => "n:o:Cfinosu"
"m:qW:X:xc:vViI" => "c:m:W:X:IiqVvx"
"V:omo:V" => "o:V:moV"
"agg:ra:va::ting::" => "a::g::a:g:aginrtv"
"input" => "inptu"
Trường hợp thử nghiệm dài (312 ký tự)
Đầu vào được trả tiền (bạn không phải xử lý):
"gg" (duplicated option)
"" (empty string)
":w:" (first colon isn't after a character)
"x:y:0:fhn" ('0' is not alphabetic)
"A:::" (3 colons is invalid)
agg:ra:va::ting::
đã phá vỡ của tôi heh ... mỉa mai.