zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    多层交换概述
    多层交换MLS笔记2
    多层交换MLS笔记1
    RSTP Proposal-Agreement
    RSTP Note
    保护STP
    优化STP
    Cisco STP Note
    25、C++的顶层const和底层const
    43、如何用代码判断大小端存储
  • 原文地址:https://www.cnblogs.com/asenyang/p/6781471.html
Copyright © 2011-2022 走看看