算法7 编码和解码TinyURL
来源:互联网 发布:卷积神经网络 算法 编辑:程序博客网 时间:2024/06/05 20:59
题目:
TinyURL是一个URL缩短服务,您可以在其中输入URL,https://leetcode.com/problems/design-tinyurl并返回一个简短的URL http://tinyurl.com/4e9iAk。
设计TinyURL服务的方法encode和decode方法。编码/解码算法应该如何工作没有限制。您只需确保将URL编码为一个小型URL,并将该小型URL解码为原始URL。
思路:就是将有长的url有规律的变成短的url,就形成键值的模式。
代码:
public class Codec { Map<Integer, String> map = new HashMap<>(); int i=0; public String encode(String longUrl) { map.put(i,longUrl); return "http://tinyurl.com/"+i++; } public String decode(String shortUrl) { return map.get(Integer.parseInt(shortUrl.replace("http://tinyurl.com/", ""))); }}
此外还有一种相近的方式
public class Codec { Map<Integer, String> map = new HashMap<>(); public String encode(String longUrl) { map.put(longUrl.hashCode(),longUrl); return "http://tinyurl.com/"+longUrl.hashCode(); } public String decode(String shortUrl) { return map.get(Integer.parseInt(shortUrl.replace("http://tinyurl.com/", ""))); }}
还有一种随机数的方式
public class Codec { Map<Integer, String> map = new HashMap<>(); Random r=new Random(); int key=r.nextInt(10000); public String encode(String longUrl) { while(map.containsKey(key)) key= r.nextInt(10000); map.put(key,longUrl); return "http://tinyurl.com/"+key; } public String decode(String shortUrl) { return map.get(Integer.parseInt(shortUrl.replace("http://tinyurl.com/", ""))); }}
阅读全文
0 0
- 算法7 编码和解码TinyURL
- leetcode 535. Encode and Decode TinyURL 编码和解码精简URL地址
- C++ base64编码和解码算法
- BASE64编码解码算法
- 算法:计数,编码,解码
- Base64编码解码算法
- Huffam 编码、解码和生成编码表算法实现
- URL编码解码以及常见压缩算法和加密
- base64编码和解码
- uuencode编码和解码
- BASE64编码和解码
- base64编码和解码
- base64编码和解码
- BASE64 编码和解码
- URL编码和解码
- NIO编码和解码
- 编码和解码问题
- Base64编码和解码
- Docker run 命令
- unity手动选择文件夹保存文件
- Anonymous class puzzler习题
- SSH中Hibernate中报错No Hibernate Session bound to thread解决
- Java中数据类型及其之间的转换(转)
- 算法7 编码和解码TinyURL
- python 列表常用函数操作
- python学习笔记---对象赋值其实就是引用
- git的详细教程地址
- 新星Hcash超级现金矿池傻瓜版HSR挖矿指南-钱包流程,及1060 1070 1080 显卡速度对比
- JAVA提高篇(33)--Java线程常用的操作方法
- 【LeetCode】C# 16、3Sum Closest
- Unity调用系统窗口选择文件或文件路径
- 网页拖拽项目实践