首页 > 代码库 > leetcode535
leetcode535
public class Codec { const string alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; Dictionary<string, string> url2code = new Dictionary<string, string>(); Dictionary<string, string> code2url = new Dictionary<string, string>(); const string TINYURL = "http://tinyurl.com/"; // Encodes a URL to a shortened URL public string encode(string longUrl) { while (!url2code.ContainsKey(longUrl))//原来没有这个url的short版本 { //需要生成一个新的 var random = new Random(DateTime.Now.Millisecond); StringBuilder sb = new StringBuilder(); while (sb.Length < 6) { var index = random.Next(62); sb.Append(alphabet[index]); } var code = TINYURL + sb.ToString(); if (!code2url.ContainsKey(code))//新生成的这个code,之前没用过 { url2code.Add(longUrl, code); code2url.Add(code, longUrl); } } return url2code[longUrl]; } // Decodes a shortened URL to its original URL. public string decode(string shortUrl) { if (code2url.ContainsKey(shortUrl)) { return code2url[shortUrl]; } else { return shortUrl; } } } // Your Codec object will be instantiated and called as such: // Codec codec = new Codec(); // codec.decode(codec.encode(url));
https://leetcode.com/problems/encode-and-decode-tinyurl/#/description
leetcode535
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。