您的位置:首页 > 其它

535. Encode and Decode TinyURL

2017-06-16 00:04 537 查看
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.

Subscribe to see which companies asked this question.

对原URL进行编码,使得它变得尽量短。使用哈希表记录一个长URL的编号和用vector记录编号对应的长URL即可实现编码和解码。

代码:

class Solution
{
public:
string encode(string longUrl)
{
auto it = long2short.find(longUrl);
if(it != long2short.end())
return "http://tinyurl.com/" + to_string(it->second);
short2long.push_back(longUrl);
return "http://tinyurl.com/" + to_string(short2long.size());
}

string decode(string shortUrl)
{
int num = stoi(shortUrl.substr(19));
return short2long[num - 1];
}

private:
unordered_map<string, int> long2short;
vector<string> short2long;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  encode