123456789101112131415161718192021222324252627282930313233343536 |
- public class Codec {
- private int id = 0;
- private HashMap<Integer, String> map = new HashMap<>();
-
- public String encode(String longUrl) {
- String[] strs = longUrl.split("//");
- map.put(id, strs[0] + "/");
- StringBuilder sb = new StringBuilder();
- sb.append(id++);
- String[] body = strs[1].split("/", -1);
- for (String s : body) {
- map.put(id, s);
- sb.append(',');
- sb.append(id++);
- }
- return sb.toString();
- }
-
- public String decode(String shortUrl) {
- String[] code = shortUrl.split(",");
- LinkedList<String> list = new LinkedList<>();
- for (String c : code) {
- int id = Integer.parseInt(c);
- String s = map.get(id);
- list.add(s);
- }
- String[] strs = list.toArray(new String[list.size()]);
- return String.join("/", strs);
- }
- }
|