# 535. Encode and Decode TinyURL

{% embed url="<https://leetcode.com/problems/encode-and-decode-tinyurl/>" %}

偷懒用了hash，自己写letter+digit的随机抽取，可以固定长度+增加最大容量，懒得写了这里...

```python
class Codec:
    def __init__(self):
        self.map_ = dict()

    def encode(self, longUrl: str) -> str:
        """Encodes a URL to a shortened URL.
        """
        self.map_[hash(longUrl)] = longUrl
        return "http://tinyurl.com/" + str(hash(longUrl))

    def decode(self, shortUrl: str) -> str:
        """Decodes a shortened URL to its original URL.
        """
        return self.map_[int(shortUrl.lstrip("http://tinyurl.com/"))]
    

# Your Codec object will be instantiated and called as such:
# codec = Codec()
# codec.decode(codec.encode(url))
```
