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