Люди на цьому сайті дуже люблять прикрашати свої посади ...
Stewie's sequence: + * - / + * - /
Однак, коли цей заголовок потрібно включити до URL-адреси сторінки, це спрощується:
stewies-sequence
Змагання
Ваше завдання - створити програму або функцію, яка, задавши рядок, що представляє назву посади, виводить / повертає перетворення "Приємно для URL".
Алгоритм:
- Перетворити в малі регістри (де це можливо)
- Замініть кожен пробіл (
), період (
.
), кома (,
) або косою рисою (/
) на тире (-
) - Видаліть будь-які не буквено-цифрові символи, крім тире.
- Мінімізуйте групи суміжних тире (
a---b -> a-b
), видаліть усі, які є провідними / кінцевими.
Зверніть увагу, що цей алгоритм є спрощенням і може не завжди давати ті самі результати, що і реальний метод сайту.
Правила
- Ви можете припустити, що вхід:
- Не буде порожнім.
- Містить хоча б один буквено-цифровий символ.
- Містить лише символи діапазону ASCII 32-126 (для друку)
- Повні програми або функції дозволені.
- Вбудована команда , яка робить точну специфікацію завдання є НЕ допускається.
- Це код-гольф , тому найкоротше рішення (у байтах) виграє!
Випробування
Більшість публікацій на цьому веб-сайті будуть служити тестами, але ось зручний список:
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
Деякі довші ...
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
І кілька зразків перевірки кращого випадку (не соромтесь запропонувати більше):
0123 -> 0123
a a1 -> a-a1
2-1=1 -> 2-11
if(isalphanum(ch))...
_
підкреслення? Мій код працює за винятком випадків, коли є підкреслення.
-
s? Чи доведеться їх зняти? Наприкладasdf-
, чи-
доведеться видаляти останні ?