TinyURL, by LeetCode
Fun beginner's problem by LeetCode, here it is https://leetcode.com/problems/encode-and-decode-tinyurl/#/description : 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 the encode and decode methods for the TinyURL service. 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. Simple solution: keep two hash-tables, one mapping long URLs to short URLs, and another one the other way around (short to long). Use a random number generator to generate the short version. Mix that all up, and voila! public class Codec { private Hashtable longToShort = new Hashtable(); private Hashtable shortToLong= new Hashtable(); // Encodes a URL to a shortened URL p...