Các URL đang trở nên quá dài. Vì vậy, bạn phải thực hiện một thuật toán để rút ngắn URL.
Tôi. Cấu trúc của một URL
Một URL có 2 phần chính: tên miền và đường dẫn . Tên miền là một phần của URL trước dấu gạch chéo đầu tiên. Bạn có thể cho rằng URL không bao gồm giao thức. Con đường là mọi thứ khác.
ii. Lĩnh vực
Tên miền của một URL sẽ giống như : xkcd.com
meta.codegolf.stackexcchhannnge.cooom
. Mỗi phần được phân tách theo giai đoạn, ví dụ: trong blag.xkcd.com
, các phần là "blag", "xkcd" và "com". Đây là những gì bạn sẽ làm với nó:
Nếu nó chứa nhiều hơn hai phần, đặt hai phần cuối sang một bên và ghép chữ cái đầu tiên của phần còn lại.
Sau đó, nối nó với chữ cái đầu tiên đến phần thứ hai đến phần cuối cùng.
Thêm một khoảng thời gian và chữ cái thứ hai và thứ ba của phần thứ hai đến cuối cùng.
Hủy phần cuối cùng.
iii. Con đường
Đường dẫn sẽ như : /questions/2140/
/1407/
. Như trước đây, "các bộ phận" được ngăn cách bằng dấu gạch chéo. Đối với mỗi phần trong đường dẫn, hãy làm:
Thêm một dấu gạch chéo
Nếu nó được làm hoàn toàn bằng mười chữ số cơ sở, hãy hiểu nó là một số và chuyển đổi thành số nguyên cơ sở 36.
Nếu không, thêm chữ cái đầu tiên của phần.
Cuối cùng, thêm một dấu gạch chéo.
iv. Linh tinh
- Đây là mã golf , vì vậy mã ngắn nhất sẽ thắng.
- Đường dẫn có thể trống, nhưng URL sẽ luôn kết thúc bằng dấu gạch chéo.
- Sẽ không có một giao thức (ví dụ
http://
,file:///
) - Sẽ không bao giờ có ít hơn hai phần trong miền.
- Tiêu chuẩn áp dụng.
Ví dụ
Trong: xkcd.com/72/
Ra:x.kc/20/
Trong: math.stackexchange.com/a/2231/
Ra:ms.ta/a/1pz/
Trong: hello.org/somecoolcodeintrepreteriijjkk?code=3g3fzsdg32,g2/
Ra:h.el/s/
kk
và mọi thứ bắt đầu bằng?
một chuỗi truy vấn, không nên kết thúc bằng dấu gạch chéo? Ngoài ra, không phải tất cả các URL sẽ kết thúc bằng dấu gạch chéo/
, nhưwww.something.com/path
. Hay điều này không liên quan cho mục đích của thử thách này?