public class Codec {
//还是利用HashMap,将longUrl和shortUrl对应起来
//建立两个hashMap
Map<String,String> LongUrlToShortUrl=new HashMap<>();
Map<String,String> ShortUrlToLongUrl=new HashMap<>();
private static final String code = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
// Encodes a URL to a shortened URL.
public String encode(String longUrl) {
String encode="";
if(LongUrlToShortUrl.get(longUrl)!=null){
return LongUrlToShortUrl.get(longUrl);
//如果map中存在则直接返回
}else{
encode=Codec.randoms(longUrl);
while(ShortUrlToLongUrl.get(encode)!=null){
encode=Codec.randoms(longUrl);
}
}
LongUrlToShortUrl.put(longUrl,encode);
ShortUrlToLongUrl.put(encode,longUrl);
return encode;
}
public static String randoms(String longUrl){
String encode="";
for(int i=0; i<6; i++)
{
String str = String.valueOf(code.charAt((int)(Math.random()*61)));
encode = encode + str;
}
return encode;
}
// Decodes a shortened URL to its original URL.
public String decode(String shortUrl) {
String decodes=ShortUrlToLongUrl.get(shortUrl);
if(decodes==null) return "";
else return decodes;
}
}
leetcode 535. Encode and Decode TinyURL
最新推荐文章于 2020-03-24 14:32:16 发布