Desafío
Dado un goo.gl
enlace acortado válido , genera la URL original.
Ejemplo
goo.gl/qIwi3N
daría algo así https://codegolf.stackexchange.com/
. Para la entrada, puede elegir tener el https?://
al principio, puede elegir tener www.
antes del goo.gl
, y también puede optar por deshacerse de él goo.gl
si solo desea el final de la URL. Una barra oblicua al final es opcional para entrada y salida. Entonces, su entrada terminará haciendo coincidir la expresión regular (https?://)?(www\.)?(goo\.gl/)?[A-Za-z0-9]+/?
. Para la salida, puede elegir si generar o no https?://
, si generar o no www.
, y si generar o no una barra diagonal final. Sin embargo, debe ser compatible con el formato de su E / S .
Diré que no tiene que ser consistente con https
vs. http
para salida (pero debe ser consistente para entrada), siempre y cuando sea consistente con si incluye o no la https?://
parte completa .
Casos de prueba
Estos se escriben con no https://
, no www.
, sin barra diagonal en la entrada; sí https://
, no www.
y sí, barra diagonal final en la salida.
input -> output
goo.gl/HaE8Au -> https://codegolf.stackexchange.com/
goo.gl/IfZMwe -> https://stackoverflow.com/
goo.gl/JUdmxL -> https://chat.stackexchange.com/rooms/240/the-nineteenth-byte
Supuestos
- Puede suponer que el enlace acortado no apuntará a otro enlace acortado y que el sitio de destino devolverá un código de estado de
2xx
o4xx
(sin redireccionamientos).
Puede ir aquí e ingresar una URL para aplicar la operación inversa de esto: https://goo.gl/
www.
marca la diferencia. En la mayoría de los casos, es el mismo servidor al que se refiere. Prueba por ejemplo http://pks.mpg.de
y http://www.pks.mpg.de
. El primero no puede resolverse, mientras que el último sí.