Люди на этом сайте очень любят украшать свои посты ...
Stewie's sequence: + * - / + * - /
Однако, когда этот заголовок необходимо включить в URL страницы, он упрощается:
stewies-sequence
Соревнование
Ваша задача - создать программу или функцию, которая при наличии строки, представляющей заголовок записи, выводит / возвращает свое преобразование "URL-Friendly".
Алгоритм:
- Преобразовать в нижний регистр (где применимо)
- Замените каждый пробел (
), точку (
.
), запятую (,
) или косую черту (/
) тире (-
) - Удалите все не алфавитно-цифровые символы, кроме тире.
- Сократите группы соседних тире (
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))...
_
подчеркивания? Мой код работает за исключением случаев, когда есть подчеркивание.
-
с? Должны ли они быть удалены? Напримерasdf-
,-
нужно ли удалить последнее ?