首页 > 试题广场 >

如何设计算法压缩一段URL?

[问答题]
请你设计一个算法,用来压缩一段URL?
常用的url压缩算法是短地址映射法。具体步骤是:
① 将长网址用md5算法生成32位签名串,分为4段,,每段8个字符;
② 对这4段循环处理,取每段的8个字符, 将他看成16进制字符串与0x3fffffff(30位1)的位与操作,超过30位的忽略处理;
③ 将每段得到的这30位又分成6段,每5位的数字作为字母表的索引取得特定字符,依次进行获得6位字符串;
④ 这样一个md5字符串可以获得4个6位串,取里面的任意一个就可作为这个长url的短url地址。


发表于 2019-03-31 14:36:58 回复(0)

知乎:短 URL 系统是怎么设计的?
通过发号策略,给每一个过来的长地址,发一个号即可,小型系统直接用mysql的自增索引就搞定了。如果是大型应用,可以考虑各种分布式key-value系统做发号器。不停的自增就行了。第一个使用这个服务的人得到的短地址是http://xx.xx/0 第二个是 http://xx.xx/1 第11个是 http://xx.xx/a 第依次往后,相当于实现了一个62进制的自增字段即可。

发表于 2019-03-31 20:46:19 回复(0)
哈夫曼编码压缩算法
发表于 2019-02-07 15:04:27 回复(1)