leetcode 535. Encode and Decode TinyURL 编码和解码精简URL地址

来源:互联网 发布:新材料在线软件 编辑:程序博客网 时间:2024/06/05 07:43

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.

这道题让我们编码和解码精简URL地址,这其实很有用,因为有的链接地址特别的长,就很烦,如果能精简成固定的长度,就很清爽。最简单的一种编码就是用个计数器,当前是第几个存入的url就编码成几,然后解码的时候也能根据数字来找到原来的url

代码如下:

#include <iostream>#include <vector>#include <map>#include <set>#include <queue>#include <stack>#include <string>#include <climits>#include <algorithm>#include <sstream>#include <functional>#include <bitset>#include <numeric>#include <cmath>using namespace std;class Solution{public:    vector<string> url;    // Encodes a URL to a shortened URL.    string encode(string longUrl)     {        url.push_back(longUrl);        return "http://tinyurl.com/" + to_string(url.size() - 1);    }    // Decodes a shortened URL to its original URL.    string decode(string shortUrl)     {        auto pos = shortUrl.find_last_of("/");        return url[stoi(shortUrl.substr(pos + 1))];    }   };