如何让 URL 变得更短

2018-11-23 13:16:50 +08:00
 daijinming

这里有一个 URL http://elef.top/11918780727494821840.code,其中 11918780727494821840 感觉太长,用什么算法可以把这一堆字符串变得更短,并且还能恢复成原来的字符串

4111 次点击
所在节点    程序员
29 条回复
BOYPT
2018-11-23 14:39:48 +08:00
想压缩效率最高,就得看这个 id 有没有什么规律,然后根据规律设计算法吧。

我做过个用 mongoid 的记录 id 放 url 的,mongoid 是 24 位 16 进制,有几位固定机器码,然后是时间戳,然后几位随机那样;

机器码固定默认、然后时间戳可以把范围缩小到特定的几年内,最后只记录随机数,最后缩短成 6 位 64 进制好像。时间太久不大记得
chocotan
2018-11-23 14:41:07 +08:00
hashid+1
BOYPT
2018-11-23 14:42:07 +08:00
@webdisk #20 是大小写字母加数字 64 减去 oO0Il1 几个容易视觉混淆的字母吧
flynaj
2018-11-23 14:45:01 +08:00
map 一个表保保存,微软就是这样做的
sutra
2018-11-23 14:50:35 +08:00
@hoythan 输入参数和 10 进制输出不一样?什么算法?
50vip
2018-11-23 15:31:46 +08:00
100 进制试试看!
jfcherng
2018-11-23 15:35:15 +08:00
寫了個玩具練手 https://gist.github.com/jfcherng/44fe9183a657758df455da5a575bdaa8

Encoded: W7tuQpX~lnH
# of chars saved: 9
auv1107
2018-11-23 15:52:25 +08:00
存个表
deadEgg
2018-11-23 16:20:18 +08:00
我以前被面试的时候想了一种短链接的实现方式

可以用 trie 树去实现,简单容易理解,优点多多,缺点就是内存占用大

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/510728

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX