[LeetCode] Encode and Decode TinyURL

535. Encode and Decode TinyURL

Note: This is a companion problem to the System Design problem: Design TinyURL.
TinyURL is a URL shortening service where you enter a URL such as https://leetcode.com/problems/design-tinyurl and it returns a short URL such as http://tinyurl.com/4e9iAk.

Design the encode and decode methods for the TinyURL service. There is no restriction on how your encode/decode algorithm should work. You just need to ensure that a URL can be encoded to a tiny URL and the tiny URL can be decoded to the original URL.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
unordered_map<string, string> cache;
public:
// Encodes a URL to a shortened URL.
string encode(string longUrl) {
string key = to_string(rand()%31) + to_string(time(0));
cache[key] = longUrl;
return key;
}

// Decodes a shortened URL to its original URL.
string decode(string shortUrl) {
return cache[shortUrl];
}
};
// Your Solution object will be instantiated and called as such:
// Solution solution;
// solution.decode(solution.encode(url));
Author: Song Hayoung
Link: https://songhayoung.github.io/2021/03/15/PS/LeetCode/encode-and-decode-tinyurl/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.