Gli URL stanno diventando troppo lunghi. Pertanto, è necessario implementare un algoritmo per abbreviare un URL.
io. La struttura di un URL
Un URL ha 2 parti principali: un dominio e un percorso . Un dominio è la parte dell'URL prima della prima barra. Si può presumere che l'URL non includa un protocollo. Il percorso è tutto il resto.
ii. Il dominio
Il dominio di un URL sarà qualcosa di simile: xkcd.com
meta.codegolf.stackexcchhannnge.cooom
. Ogni parte è separata dal periodo, ad es. In blag.xkcd.com
, le parti sono "blag", "xkcd" e "com". Questo è ciò che farai con esso:
Se contiene più di due parti, mettere da parte le ultime due e concatenare la prima lettera del resto delle parti.
Quindi, concatenalo alla prima lettera fino alla penultima parte.
Aggiungi un punto e la seconda e la terza lettera della penultima parte.
Elimina l'ultima parte.
iii. Il sentiero
Il percorso sarà come: /questions/2140/
/1407/
. Come prima, le "parti" sono separate da barre. Per ogni parte del percorso, eseguire:
Aggiungi una barra
Se è composto interamente da dieci cifre in base, interpretalo come un numero e converti in un numero in base 36.
Altrimenti, aggiungi la prima lettera della parte.
Alla fine, aggiungi una barra.
iv. Varie.
- Questo è code-golf , quindi vince il codice più corto.
- Il percorso può essere vuoto, ma l'URL termina sempre con una barra.
- Non ci sarà un protocollo (ad es
http://
.file:///
) - Non ci saranno mai meno di due parti nel dominio.
- Si applicano scappatoie standard.
Esempi
In: xkcd.com/72/
Out:x.kc/20/
In: math.stackexchange.com/a/2231/
Out:ms.ta/a/1pz/
In: hello.org/somecoolcodeintrepreteriijjkk?code=3g3fzsdg32,g2/
Out:h.el/s/
kk
e tutto ciò che inizia con?
è una stringa di query, che non dovrebbe terminare con una barra? Inoltre, non tutti gli URL finiranno con una barra/
, comewww.something.com/path
. O è irrilevante ai fini di questa sfida?