没有算法可以将一个长url转为一个短url而不引起冲突,短url所能表示的字符串个数一定少于长url的个数;
真实做法应该是提供一个自增id来标识长url,小型数据可以通过map储存,大型数据可以通过redis等keyi-value型数据库储存
package Array; import java.util.HashMap; import java.util.Map; public class p535 { Map<Integer,String> map=new HashMap<>(); private int count=0; // Encodes a URL to a shortened URL. public String encode(String longUrl) { map.put(count,longUrl); return "http://tinyurl.com/"+count++; } // Decodes a shortened URL to its original URL. public String decode(String shortUrl) { String countString[]=shortUrl.split("/"); return map.get(Integer.valueOf(countString[countString.length-1])); } }