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 < )
{
var index = random.Next();
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

最新文章

  1. TCP三次握手四次挥手
  2. 转:用WCAT进行IIS压力测试
  3. android图片的异步加载和双缓存学习笔记——DisplayImageOptions (转)
  4. Spring技术揭幕----DispatcherServlet
  5. UIButton 一个控件 实现 左图标右文本的效果
  6. oracle解析xml完成版
  7. 标签—box-shadow
  8. 【PHP】Sublime下PHP网站开发指南
  9. Javascript--cookie创建与查看
  10. 计算机网络之万维网WWW
  11. JVM terminated. Exit code=8096
  12. Java Main参数解析(Args4j)
  13. JS时间的获取及格式
  14. Vue项目搭建与部署
  15. oracle数据库无法连接 The Network Adapter could not establish
  16. mongodb spring 配置文件
  17. Verilog 加法器和减法器(1)
  18. java Date 当天时间戳处理
  19. [SCOI2010]序列操作[分块or线段树]
  20. java求最长公共子串的长度

热门文章

  1. Hash学习小结
  2. Codeforces 815C. Karen and Supermarket【树形DP】
  3. LOJ2421 NOIP2015 信息传递 【tarjan求最小环】
  4. Luogu3387 缩点 【tarjan】【DP】
  5. Linux下Eclipse配置安装 PyDev(Pydev插件一直不能成功,安装这个插件失败的问题)
  6. sublime python运行插件
  7. PEP
  8. oracle 内存分配和调优 总结
  9. Python——while、continue、break、while-else、or、and、not
  10. laravel的auth用户认证的例子