535. TinyURL 的加密與解密(JavaScript)
阿新 • • 發佈:2019-02-18
TinyURL是一種URL簡化服務, 比如:當你輸入一個URL https://leetcode.com/problems/design-tinyurl
時,它將返回一個簡化的URL http://tinyurl.com/4e9iAk
.
要求:設計一個 TinyURL 的加密 encode
和解密 decode
的方法。你的加密和解密演算法如何設計和運作是沒有限制的,你只需要保證一個URL可以被加密成一個TinyURL,並且這個TinyURL可以用解密方法恢復成原本的URL。
思路:
由於加密解密演算法不是重點,所以採用最簡單的,把所有加密過的url放入一個數組。
建立一個全域性變數 map陣列,存放所有加密的url,加密演算法就是把 url 放入map中,並返回 "http://tinyurl.com/" +索引值。
解密演算法就是通過索引找到加密前的url。
/** * Encodes a URL to a shortened URL. * * @param {string} longUrl * @return {string} */ var encode = function(longUrl) { map[i] = longUrl return `http://tinyurl.com/${i++}`; }; /** * Decodes a shortened URL to its original URL. * * @param {string} shortUrl * @return {string} */ var decode = function(shortUrl) { return map[shortUrl.replace("http://tinyurl.com/","")] }; /** * Your functions will be called as such: * decode(encode(url)); */ var map = []; var i = 0;