题意:TinyURL是一种URL简化服务, 比如:当你输入一个URL https://leetcode.com/problems/design-tinyurl 时,它将返回一个简化的URL http://tinyurl.com/4e9iAk.
要求:设计一个 TinyURL 的加密 encode 和解密 decode 的方法。你的加密和解密算法如何设计和运作是没有限制的,你只需要保证一个URL可以被加密成一个TinyURL,并且这个TinyURL可以用解密方法恢复成原本的URL。
解题思路
解法:
1.设计加解密有多种做法,一种是使用定下的规则(aes、des等)进行加解密,还有一种更加简单,用文件存储或者内存存储,以key、value形式存储加解密之后的字符串
2.这里我们简单一些,用map来存储,key为当前加解密的字符串是第几个,value为原始字符串
3.每次加密时,固定输出叠加的index即可
4.每次解密是,只需要根据index,返回相应的value即可
解题遇到的问题
无
后续需要总结学习的知识点
无
##解法1
import java.util.HashMap;
import java.util.Map;
public class Codec {
Map<Integer, String> map = new HashMap<Integer, String>();
int index = 0;
public String encode(String longUrl) {
map.put(index, longUrl);
return "http://tinyurl.com/" + index++;
}
public String decode(String shortUrl) {
return map.get(shortUrl.charAt(shortUrl.length() - 1) - '0');
}
}
网友评论