Mọi người trên trang này thực sự thích tô điểm tiêu đề bài viết của họ ...
Stewie's sequence: + * - / + * - /
Tuy nhiên, khi tiêu đề này cần được đưa vào URL trang, nó được đơn giản hóa:
stewies-sequence
Các thách thức
Nhiệm vụ của bạn là tạo một chương trình hoặc chức năng, được cung cấp một chuỗi đại diện cho tiêu đề bài đăng, xuất / trả về chuyển đổi "Thân thiện với URL" của nó.
Thuật toán là:
- Chuyển đổi thành chữ thường (nếu có)
- Thay thế mọi dấu cách (
), period (
.
), dấu phẩy (,
) hoặc dấu gạch chéo (/
) bằng dấu gạch ngang (-
) - Xóa mọi ký tự không chữ và số, ngoại trừ dấu gạch ngang.
- Giảm thiểu các nhóm dấu gạch ngang liền kề (
a---b -> a-b
), loại bỏ bất kỳ dấu gạch đầu dòng / dấu nào.
Xin lưu ý rằng thuật toán này là một sự đơn giản hóa và có thể không phải lúc nào cũng tạo ra kết quả giống như phương pháp thực sự của trang web.
Quy tắc
- Bạn có thể giả sử rằng đầu vào:
- Sẽ không trống rỗng.
- Sẽ chứa ít nhất một ký tự chữ và số.
- Sẽ chỉ chứa các ký tự trong phạm vi ASCII 32-126 (có thể in)
- Chương trình đầy đủ hoặc chức năng được cho phép.
- Một nội dung mà đặc tả nhiệm vụ chính xác không được phép.
- Đây là môn đánh gôn , vì vậy giải pháp ngắn nhất (tính bằng byte) sẽ thắng!
Các trường hợp thử nghiệm
Hầu hết các bài đăng trên trang web này sẽ đóng vai trò kiểm tra, nhưng đây là một danh sách tiện dụng:
Loading... Forever -> loading-forever
N(e(s(t))) a string -> nest-a-string
"Hello, World!" -> hello-world
URL-Friendly titles -> url-friendly-titles
C.U.S.R.S -> c-u-s-r-s
1+2+3+4+...+n = -1/12? -> 1234-n-1-12
How can I use cmp(a,b) -> how-can-i-use-cmpa-b
Một số cái dài hơn ...
Export The $PATH Variable, Line-By-Line -> export-the-path-variable-line-by-line
Do n and n^3 have the same set of digits? -> do-n-and-n3-have-the-same-set-of-digits
Quine Anagrams! (Cops' Thread) -> quine-anagrams-cops-thread
The Golfer Adventure - Chapter 1 -> the-golfer-adventure-chapter-1
Bootloader golf: Brainf*** -> bootloader-golf-brainf
Và một số mẫu kiểm tra trường hợp cạnh (vui lòng đề xuất thêm):
0123 -> 0123
a a1 -> a-a1
2-1=1 -> 2-11
if(isalphanum(ch))...
_
dấu gạch dưới? Mã của tôi hoạt động trừ khi có dấu gạch dưới.
-
? Họ sẽ phải được gỡ bỏ? Ví dụ trongasdf-
, cuối cùng-
sẽ phải được gỡ bỏ?