参考链接
- https://leetcode-cn.com/problems/encode-and-decode-tinyurl/
题目描述
TinyURL是一种URL简化服务, 比如:当你输入一个URL https://leetcode.com/problems/design-tinyurl 时,它将返回一个简化的URL http://tinyurl.com/4e9iAk.
要求:设计一个 TinyURL 的加密 encode 和解密 decode 的方法。你的加密和解密算法如何设计和运作是没有限制的,你只需要保证一个URL可以被加密成一个TinyURL,并且这个TinyURL可以用解密方法恢复成原本的URL。
解题思路
题目没有要求加密算法,可以直接选择最简单的加密方式。用哈希表将原URL映射为一个整数,解码时直接反映射回URL即可。
代码
class Solution {
public:
unordered_map<string, string> mp;
// Encodes a URL to a shortened URL.
int i = 0;
string encode(string longUrl) {
mp[to_string(i)] = longUrl;
string res = "http://tinyurl.com/" + to_string(i++);
return res;
}
// Decodes a shortened URL to its original URL.
string decode(string shortUrl) {
return mp[shortUrl.substr(19, shortUrl.size()-19)];
}
};