Les gens sur ce site aiment vraiment embellir leurs titres de poste ...
Stewie's sequence: + * - / + * - /
Cependant, lorsque ce titre doit être inclus dans l'URL de la page, il est simplifié:
stewies-sequence
Le défi
Votre tâche consiste à créer un programme ou une fonction qui, étant donné une chaîne représentant un titre de publication, génère / renvoie sa conversion "URL-Friendly".
L'algorithme est:
- Convertir en minuscules (le cas échéant)
- Remplacez chaque espace (
), point (
.
), virgule (,
) ou barre oblique (/
) par un tiret (-
) - Supprimez tous les caractères non alphanumériques, à l'exception des tirets.
- Réduisez les groupes de tirets adjacents (
a---b -> a-b
), supprimez ceux qui mènent / suivent.
Veuillez noter que cet algorithme est une simplification et peut ne pas toujours produire les mêmes résultats que la méthode réelle du site.
Règles
- Vous pouvez supposer que l'entrée:
- Ne sera pas vide.
- Contiendra au moins un caractère alphanumérique.
- Ne contiendra que des caractères dans la plage ASCII 32-126 (imprimable)
- Les programmes ou fonctions complets sont autorisés.
- Un builtin qui fait la spécification de tâche exacte n'est pas autorisé.
- Il s'agit de code-golf , donc la solution la plus courte (en octets) l'emporte!
Cas de test
La plupart des messages sur ce site serviront de tests, mais voici une liste pratique:
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
Certains plus longs ...
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
Et quelques échantillons de vérification de bord (n'hésitez pas à suggérer plus):
0123 -> 0123
a a1 -> a-a1
2-1=1 -> 2-11
if(isalphanum(ch))...
_
soulignements? Mon code fonctionne sauf lorsqu'il y a des traits de soulignement.
-
? Devront-ils être supprimés? Par exemple dansasdf-
, le dernier-
devra-t-il être supprimé?