• 【日常训练】535. TinyURL 的加密与解密


    题目

    TinyURL 是一种 URL 简化服务, 比如:当你输入一个 URL https://leetcode.com/problems/design-tinyurl 时,它将返回一个简化的URL http://tinyurl.com/4e9iAk 。请你设计一个类来加密与解密 TinyURL 。

    加密和解密算法如何设计和运作是没有限制的,你只需要保证一个 URL 可以被加密成一个 TinyURL ,并且这个 TinyURL 可以用解密方法恢复成原本的 URL 。

    实现 Solution 类:

    Solution() 初始化 TinyURL 系统对象。
    String encode(String longUrl) 返回 longUrl 对应的 TinyURL 。
    String decode(String shortUrl) 返回 shortUrl 原本的 URL 。题目数据保证给定的 shortUrl 是由同一个系统对象加密的。

    示例:
    输入:url = “https://leetcode.com/problems/design-tinyurl”
    输出:“https://leetcode.com/problems/design-tinyurl”
    解释:
    Solution obj = new Solution();
    string tiny = obj.encode(url); // 返回加密后得到的 TinyURL 。
    string ans = obj.decode(tiny); // 返回解密后得到的原本的 URL 。

    提示:
    1 <= url.length <= 104
    题目数据保证 url 是一个有效的 URL

    代码

    package dayLeetCode;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class dayleetcode535 {
        // 添加一个唯一标识
        Map<Integer, String> map = new HashMap<>();
        int id;
    
        // Encodes a URL to a shortened URL.
        public String encode(String longUrl) {
            id++;
            map.put(id, longUrl);
            return "http://tinyurl.com/" + id;
    
        }
    
        // Decodes a shortened URL to its original URL.
        public String decode(String shortUrl) {
            // 获取id是第几个字符
            int k = shortUrl.lastIndexOf('/') + 1;
            // 去掉前k个字符
            int id = Integer.parseInt(shortUrl.substring(k));
    
            return map.get(id);
    
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
  • 相关阅读:
    Day16 | 每天五道题
    Appium+python+unittest搭建UI自动化框架
    360 评估反馈问题的示范案例
    异步任务-线程池配置
    【shell】$# 获取函数参数
    【第四周】程序的控制结构
    使用 PowerShell 将 Windows 转发事件导入 SQL Server
    猿创征文 | 响应式布局
    QSS 选择器
    Linux进程概念
  • 原文地址:https://blog.csdn.net/Puppet__/article/details/125516083