-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathurl.py
30 lines (26 loc) · 777 Bytes
/
url.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Python3 code for above approach
def idToShortURL(id):
map = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
shortURL = ""
# for each digit find the base 62
while(id > 0):
shortURL += map[id % 62]
id //= 62
# reversing the shortURL
return shortURL[len(shortURL): : -1]
def shortURLToId(shortURL):
id = 0
for i in shortURL:
val_i = ord(i)
if(val_i >= ord('a') and val_i <= ord('z')):
id = id*62 + val_i - ord('a')
elif(val_i >= ord('A') and val_i <= ord('Z')):
id = id*62 + val_i - ord('Z') + 26
else:
id = id*62 + val_i - ord('0') + 52
return id
if (__name__ == "__main__"):
id = 12345
shortURL = idToShortURL(id)
print("Short URL from 12345 is : ", shortURL)
print("ID from", shortURL, "is : ", shortURLToId(shortURL))