Le persone su questo sito adorano davvero abbellire i titoli dei loro post ...
Stewie's sequence: + * - / + * - /
Tuttavia, quando questo titolo deve essere incluso nell'URL della pagina, viene semplificato:
stewies-sequence
La sfida
Il tuo compito è quello di creare un programma o una funzione che, data una stringa che rappresenta un titolo del post, genera / restituisce la sua conversione "URL-Friendly".
L'algoritmo è:
- Converti in minuscolo (ove applicabile)
- Sostituisci ogni spazio (
), punto (
.
), virgola (,
) o barra (/
) con un trattino (-
) - Rimuovi tutti i caratteri non alfanumerici, tranne i trattini.
- Minimizza gruppi di trattini adiacenti (
a---b -> a-b
), rimuovi quelli che sono in testa / in coda.
Si noti che questo algoritmo è una semplificazione e potrebbe non sempre produrre gli stessi risultati del metodo reale del sito.
Regole
- Puoi presumere che input:
- Non sarà vuoto.
- Conterrà almeno un carattere alfanumerico.
- Conterrà solo caratteri nell'intervallo ASCII 32-126 (stampabile)
- Sono ammessi programmi o funzioni completi.
- Un built-in che esegue la specifica esatta dell'attività non è consentito.
- Questo è code-golf , quindi vince la soluzione più breve (in byte)!
Casi test
La maggior parte dei post su questo sito serviranno da test, ma ecco un utile elenco:
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
Alcuni più lunghi ...
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 alcuni esempi di controllo dei casi limite (sentiti libero di suggerire di più):
0123 -> 0123
a a1 -> a-a1
2-1=1 -> 2-11
if(isalphanum(ch))...
_
sottolineatura? Il mio codice funziona tranne quando ci sono caratteri di sottolineatura.
-
s? Dovranno essere rimossi? Ad esempio inasdf-
, l'ultimo-
dovrà essere rimosso?