首页 » 网站推广 » phpurldecodes技巧_算法TinyURL 的加密与解密

phpurldecodes技巧_算法TinyURL 的加密与解密

访客 2024-11-18 0

扫一扫用手机浏览

文章目录 [+]

哀求:设计一个 TinyURL 的加密 encode 和解密 decode 的方法。
你的加密和解密算法如何设计和运作是没有限定的,你只须要担保一个URL可以被加密成一个TinyURL,并且这个TinyURL可以用解密方法规复本钱来的URL。

思路:

phpurldecodes技巧_算法TinyURL 的加密与解密

针对长地址,随机天生一个key,把key和长地址放到map里存起来,后续decode时从map中取对应的key。

phpurldecodes技巧_算法TinyURL 的加密与解密
(图片来自网络侵删)

key的天生办法:先确定一个多少长度的字母池,然后从字母池里随机挑选多少个字母。
字母池的长度和key的长度可以设置的长一些,以便支持更多的地址转换。

如果天生的key之前已经用过,那么重新天生key,直到天生未利用过的key。

代码:

class Solution {public: string generate_key() { char key[7]; key[6]='\0'; for(int i=0; i<6; i++) { key[i] = letters[rand()%62]; } return key; } // Encodes a URL to a shortened URL. string encode(string longUrl) { string key; while(true) { key = generate_key(); if(mp.find(key) == mp.end()) { mp[key] = longUrl; break; } } return "http://tinyurl.com/"+key; } // Decodes a shortened URL to its original URL. string decode(string shortUrl) { string key = shortUrl.substr(19); if(mp.find(key) != mp.end()) return mp[key]; else return ""; }private: unordered_map<string, string> mp; const string letters="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";};

标签:

相关文章

易语言在SEO领域的应用与方法

SEO(搜索引擎优化)已经成为企业提高网站排名、获取流量的重要手段。在众多编程语言中,易语言凭借其易学易用、跨平台等特点,在SEO...

网站推广 2025-03-26 阅读1 评论0

河北电商SEO,助力企业腾飞的新引擎

电子商务已成为我国经济发展的重要引擎。河北作为我国重要的电子商务基地,拥有丰富的电商资源和庞大的消费市场。在激烈的市场竞争中,如何...

网站推广 2025-03-26 阅读1 评论0

海南,热带天堂的SEO攻略与

海南,一个位于中国最南端的热带岛屿,拥有得天独厚的自然风光和独特的文化底蕴。越来越多的游客通过网络了解海南,这也使得海南的SEO(...

网站推广 2025-03-26 阅读0 评论0