LeetCode in Kotlin

535. Encode and Decode TinyURL

Medium

Note: This is a companion problem to the System Design problem: Design TinyURL.

TinyURL is a URL shortening service where you enter a URL such as https://leetcode.com/problems/design-tinyurl and it returns a short URL such as http://tinyurl.com/4e9iAk. Design a class to encode a URL and decode a tiny URL.

There is no restriction on how your encode/decode algorithm should work. You just need to ensure that a URL can be encoded to a tiny URL and the tiny URL can be decoded to the original URL.

Implement the Solution class:

Example 1:

Input: url = “https://leetcode.com/problems/design-tinyurl”

Output: “https://leetcode.com/problems/design-tinyurl”

Explanation:

Solution obj = new Solution();
string tiny = obj.encode(url); // returns the encoded tiny url.
string ans = obj.decode(tiny); // returns the original url after deconding it. 

Constraints:

Solution

class Codec {
    private val map: MutableMap<String, String> = HashMap()
    private var n = 0

    // Encodes a URL to a shortened URL.
    fun encode(longUrl: String): String {
        n++
        var ans = "http://tinyurl.com/"
        ans += n.toString()
        map[ans] = longUrl
        return ans
    }

    // Decodes a shortened URL to its original URL.
    fun decode(shortUrl: String): String? {
        return map[shortUrl]
    }
}

/*
 * Your Codec object will be instantiated and called as such:
 * var obj = Codec()
 * var url = obj.encode(longUrl)
 * var ans = obj.decode(url)
 */
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy