- 描述
TinyURL
是一种URL简化服务, 比如:当你输入一个URL https://leetcode.com/problems/design-tinyurl
时,它将返回一个简化的URL
http://tinyurl.com/4e9iAk
.
要求:设计一个 TinyURL
的加密 encode
和解密 decode
的方法。你的加密和解密算法如何设计和运作是没有限制的,你只需要保证一个URL
可以被加密成一个TinyURL
,并且这个TinyURL
可以用解密方法恢复成原本的URL
。
- Solution One
public class Codec {
// Encodes a URL to a shortened URL.
public String encode(String longUrl) {
char[] en = longUrl.toCharArray();
for (int i = 0; i < en.length; ++i){
en[i] ^= 31;
}
return String.copyValueOf(en);
}
// Decodes a shortened URL to its original URL.
public String decode(String shortUrl) {
char[] de = shortUrl.toCharArray();
for (int i = 0; i < de.length; ++i){
de[i] ^= 31;
}
return String.copyValueOf(de);
}
}
- Solution Two
class Solution {
// Encodes a URL to a shortened URL.
public String encode(String longUrl) {
char[] en = longUrl.toCharArray();
for (int i = 0; i < en.length; ++i){
en[i] = (char) (en[i] + 1);
}
return String.copyValueOf(en);
}
// Decodes a shortened URL to its original URL.
public String decode(String shortUrl) {
char[] de = shortUrl.toCharArray();
for (int i = 0; i < de.length; ++i){
de[i] = (char) (de[i] - 1);
}
return String.copyValueOf(de);
}
}