https://leetcode.com/problems/encode-and-decode-tinyurl/description/
class Solution {
unordered_map<string, string> encodeMap;
unordered_map<string, string> decodeMap;
string dict = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
public:
// Encodes a URL to a shortened URL.
string encode(string longUrl) {
if(encodeMap.count(longUrl)) return encodeMap[longUrl];
string shortUrl = "http://tinyurl.com/";
int n = encodeMap.size(), nd = dict.size();
while(n) {
shortUrl += dict[n%nd];
n /= nd;
}
encodeMap[longUrl] = shortUrl;
decodeMap[shortUrl] = longUrl;
return shortUrl;
}
// Decodes a shortened URL to its original URL.
string decode(string shortUrl) {
return decodeMap[shortUrl];
}
};
No comments:
Post a Comment