内容与度假的运营人员为了更好的向客户介绍商品信息,往往会在推送的商品简介末尾附带一个有关商品详情的链接。这个链接往往非常长,影响了整体内容的排版,为了给客户更好的体验,现在需要实现一个长链接转短链接的算法。该算法会将原始长链接转换成一个以"https://short.url/"开头的、后接6位映射字符的短链接。算法描述如下: ① 计算key值。key初始为1,每次与64相乘后,和网址每一位字符的ASCII值相加,并每次对56800235584取余。 ② 遇到key值冲突则每次key值加1取余,直到不冲突为止。 ③ 建立key值与6位字符的映射。每一位依次从后往前是key对62取余后在字典"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"中对应的字符,每取一次后key值整除62再取。 ④ 映射字符不够六位,前面加'0'。 输入一个字符串数组表示要映射的长地址,第二个字符串数组表示要恢复的短地址,请将长地址转换成短地址,短地址转换成长地址。(要恢复的短地址一定是第一个数组的长地址转换过去的)
时间: 2023-02-14 17:30:02 浏览: 134
长链接转短链接的算法如下:
1. 计算长链接的key值。首先将key设为1,然后将key与64相乘,再将key加上长链接每一位字符的ASCII值,最后将key对56800235584取余。
2. 如果key值冲突,则每次将key加1取余,直到key值不冲突为止。
3. 建立key值与6位字符的映射。从后往前每一位字符都是key对62取余后在字典"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"中对应的字符,每取一次后key值整除62再取。
4. 如果映射字符不够六位,则在前面加0。
短链接转长链接的算法如下:
1. 建立6位字符与key值的映射。从前往后每一位字符都是在字典"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"中对应的字符,然后将这个字符的ASCII值乘上62的对应次幂,最后将所有结果相加得到key值。
2. 使用key值恢复长链接。将key值除以64,然后将除法的余数与ASCII值相加得到长链接的每一位字符。
阅读全文