Las URL son demasiado largas. Por lo tanto, debe implementar un algoritmo para acortar una URL.
yo. La estructura de una URL
Una URL tiene 2 partes principales: un dominio y una ruta . Un dominio es la parte de la URL antes de la primera barra inclinada. Puede suponer que la URL no incluye un protocolo. El camino es todo lo demás.
ii. El dominio
El dominio de una dirección URL será algo como: xkcd.com
meta.codegolf.stackexcchhannnge.cooom
. Cada parte está separada por blag.xkcd.com
puntos , por ejemplo, en , las partes son "blag", "xkcd" y "com". Esto es lo que harás con él:
Si contiene más de dos partes, ponga las dos últimas a un lado y concatene la primera letra del resto de las partes.
Luego, concatena eso a la primera letra a la penúltima parte.
Agregue un punto y la segunda y tercera letra de la penúltima parte.
Desechar la última parte.
iii) El camino
El camino será como: /questions/2140/
/1407/
. Como antes, las "partes" están separadas por barras. Para cada parte de la ruta, haga:
Agregar una barra inclinada
Si está completamente hecho de dígitos de base diez, interprete como un número y conviértalo a un entero de base 36.
De lo contrario, agregue la primera letra de la parte.
Al final, agregue una barra.
iv. Misceláneos
- Este es el código de golf , por lo que gana el código más corto.
- La ruta puede estar vacía, pero la URL siempre terminará con una barra inclinada.
- No habrá un protocolo (p
http://
. Ej .file:///
) - Nunca habrá menos de dos partes en el dominio.
- Se aplican lagunas estándar.
Ejemplos
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
y todo lo que comienza?
es una cadena de consulta, que no debería terminar con una barra diagonal? Además, no todas las URL terminarán con una barra inclinada/
, comowww.something.com/path
. ¿O es esto irrelevante para el propósito de este desafío?