535. Encode and Decode TinyURL

来源:互联网 发布:上帝掷骰子吗 知乎 编辑:程序博客网 时间:2024/05/29 14:07

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;};


原创粉丝点击