Os URLs estão ficando muito longos. Portanto, você deve implementar um algoritmo para encurtar uma URL.
Eu. A estrutura de uma URL
Um URL tem duas partes principais: um domínio e um caminho . Um domínio é a parte do URL antes da primeira barra. Você pode assumir que o URL não inclui um protocolo. O caminho é tudo o resto.
ii. O domínio
O domínio de uma URL será algo como: xkcd.com
meta.codegolf.stackexcchhannnge.cooom
. Cada parte é separada por períodos, por exemplo blag.xkcd.com
, as partes são "blag", "xkcd" e "com". Isto é o que você fará com ele:
Se contiver mais de duas partes, coloque as duas últimas de lado e concatene a primeira letra do restante das partes.
Em seguida, concatenar isso para a primeira letra para a penúltima parte.
Adicione um ponto final e a segunda e terceira letra da penúltima parte.
Descarte a última parte.
iii. O caminho
O caminho vai ser como: /questions/2140/
/1407/
. Como antes, "partes" são separadas por barras. Para cada parte do caminho, faça:
Adicione uma barra
Se for totalmente composto por dígitos da base dez, interprete-o como um número e converta para um número inteiro da base 36.
Caso contrário, adicione a primeira letra da peça.
No final, adicione uma barra.
iv. Misc.
- Isso é código-golfe , então o código mais curto vence.
- O caminho pode estar vazio, mas o URL sempre terminará com uma barra.
- Não haverá um protocolo (por exemplo
http://
,file:///
) - Nunca haverá menos de duas partes no domínio.
- Aplicam-se brechas padrão.
Exemplos
Em: xkcd.com/72/
Fora:x.kc/20/
Em: math.stackexchange.com/a/2231/
Fora:ms.ta/a/1pz/
Em: hello.org/somecoolcodeintrepreteriijjkk?code=3g3fzsdg32,g2/
Fora:h.el/s/
kk
e tudo o que começa com?
uma string de consulta não deve terminar com uma barra? Além disso, nem todos os URLs terminam com uma barra/
, comowww.something.com/path
. Ou isso é irrelevante para o objetivo deste desafio?