Leetcode 535 Solution
This article provides solution to leetcode question 535 (encode-and-decode-tinyurl)
Access this page by simply typing in "lcs 535" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/encode-and-decode-tinyurl
Solution
class Codec:
def __init__(self):
self.alphabet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
self.m = {}
def encode(self, longUrl):
"""Encodes a URL to a shortened URL.
:type longUrl: str
:rtype: str
"""
while True:
key = ""
for i in range(6):
key += self.alphabet[random.randint(0, len(self.alphabet) - 1)]
if key not in self.m:
break
self.m[key] = longUrl
return "http://tinyurl.com/{}".format(key)
def decode(self, shortUrl):
"""Decodes a shortened URL to its original URL.
:type shortUrl: str
:rtype: str
"""
key = shortUrl[19:]
return self.m[key]
# Your Codec object will be instantiated and called as such:
# codec = Codec()
# codec.decode(codec.encode(url))