As pessoas deste site adoram embelezar seus títulos de postagem ...
Stewie's sequence: + * - / + * - /
No entanto, quando esse título precisa ser incluído no URL da página, ele é simplificado:
stewies-sequence
O desafio
Sua tarefa é criar um programa ou função que, dada uma sequência que representa o título da postagem, produz / retorne sua conversão "compatível com URL".
O algoritmo é:
- Converter em minúsculas (onde aplicável)
- Substitua todos os espaços (
), ponto (
.
), vírgula (,
) ou barra (/
) por um traço (-
) - Remova todos os caracteres não alfanuméricos, exceto os traços.
- Minimize os grupos de traços adjacentes (
a---b -> a-b
), remova os que estão à frente / à direita.
Observe que esse algoritmo é uma simplificação e nem sempre pode produzir os mesmos resultados que o método real do site.
Regras
- Você pode assumir essa entrada:
- Não ficará vazio.
- Irá conter pelo menos um caractere alfanumérico.
- Contém apenas caracteres no intervalo ASCII 32-126 (imprimível)
- Programas ou funções completos são permitidos.
- Um built-in que faça a especificação exata da tarefa não é permitido.
- Isso é código-golfe , então a solução mais curta (em bytes) vence!
Casos de teste
A maioria das postagens neste site servirá como testes, mas aqui está uma lista útil:
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
Alguns mais longos ...
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
E algumas amostras de verificação de casos extremos (sinta-se à vontade para sugerir mais):
0123 -> 0123
a a1 -> a-a1
2-1=1 -> 2-11
if(isalphanum(ch))...
_
sublinhados? Meu código funciona, exceto quando há sublinhados.
-
s? Eles terão que ser removidos? Por exemploasdf-
, em , o último-
terá que ser removido?