0
点赞
收藏
分享

微信扫一扫

Python实现url与短链相互转换的方法


问题:将url转换成指定长度的短链,并支持短链还原

代码如下:

#!/usr/bin/python
# 实现url与短链相互转换的方法
import random

words = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
url_to_short = {}
short_to_url = {}
max_retry_times = 3

def gen_short(length:int):
short = ""
for i in range(length):
short += words[random.randint(0,length)]
return short

def from_url_to_short(url:str, length:int):
if url in url_to_short:
return url_to_short[url]
short = gen_short(length)
retry_times = 0
while retry_times < max_retry_times and short in short_to_url:
short = gen_short(length)
retry_times += 1
if short in short_to_url:
return None
url_to_short[url] = short
short_to_url[short] = url
return short

def from_short_to_url(short:str):
if short not in short_to_url:
return None
return short_to_url[short]

short = from_url_to_short("http://www.baidu.com", 6)
print(short)
url = from_short_to_url(short)
print(url)

1. 生成短链的方法自己定义:实现一个简单的hash过程

2. 对hash冲突的判断和处理:自定义重试次数、再hash



举报

相关推荐

0 条评论