题目

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 <= 10^4
题目数据保证 url 是一个有效的 URL

来源:力扣(LeetCode)

解题思路

  在中等题中这是一个比较简单的题目,对于加密解密的方式有很多,一般可以直接在给定的字符串后面添加一个可以直接映射的字符串,可以是随机生成的也可以是固定规律的,在这里为了简便直接使用简单的递增的下标即可。

class Codec:def __init__(self):self.n=0self.webset=dict()def encode(self, longUrl: str) -> str:"""Encodes a URL to a shortened URL."""self.webset[self.n]=longUrlreturn 'http://tinyurl.com/'+str(self.n)def decode(self, shortUrl: str) -> str:"""Decodes a shortened URL to its original URL."""return self.webset[int(shortUrl.split('/')[-1])]# Your Codec object will be instantiated and called as such:
# codec = Codec()
# codec.decode(codec.encode(url))

LeetCode中等题之TinyURL 的加密与解密相关推荐

  1. LeetCode 每日一题——535. TinyURL 的加密与解密

    1.题目描述 535. TinyURL 的加密与解密 TinyURL 是一种 URL 简化服务, 比如:当你输入一个 URL https://leetcode.com/problems/design- ...

  2. ​LeetCode刷题实战535:TinyURL 的加密与解密

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  3. 【力扣每日一题】535. TinyURL 的加密与解密

    题目描述 535. TinyURL 的加密与解密 难度中等168 TinyURL 是一种 URL 简化服务, 比如:当你输入一个 URL https://leetcode.com/problems/d ...

  4. Java实现 LeetCode 535 TinyURL 的加密与解密(位运算加密)

    535. TinyURL 的加密与解密 TinyURL是一种URL简化服务, 比如:当你输入一个URL https://leetcode.com/problems/design-tinyurl 时,它 ...

  5. 535. TinyURL 的加密与解密 : 设计一个 URL 简化系统

    题目描述 这是 LeetCode 上的 「535. TinyURL 的加密与解密」 ,难度为 「中等」. Tag : 「哈希表」.「模拟」 TinyURL 是一种 URL 简化服务, 比如:当你输入一 ...

  6. leetcode-cpp 535.TinyURL的加密和解密

    535.TinyURL的加密和解密 题目: 链接 leetcode solution: 中等难度,总结来说就是看好题目意思就行,有个标志位能够用来区分长长长,mp<string,string&g ...

  7. 【535. TinyURL 的加密与解密】

    来源:力扣(LeetCode) 描述: TinyURL 是一种 URL 简化服务, 比如:当你输入一个 URL https://leetcode.com/problems/design-tinyurl ...

  8. TinyURL 的加密与解密

    题目来源 TinyURL是一种URL简化服务, 比如:当你输入一个URL https://leetcode.com/problems/design-tinyurl 时,它将返回一个简化的URL htt ...

  9. Leetcode 535.TinyURL的加密与解密

    Time: 20190920 Type: Medium 题目描述 TinyURL是一种URL简化服务, 比如:当你输入一个URL https://leetcode.com/problems/desig ...

最新文章

  1. php_mongo.dll下载(php操作mongoDB需要)
  2. Lightroom Classic CC8.2安装教程 IT宝盒 10-14 20:32
  3. 字节流写数据的两个小问题
  4. windows+nginx+tomcat实现集群负载均衡(生产环境必读)
  5. iOS开发iPhone竖屏icon尺寸与启动页尺寸汇总
  6. 买书问题的动态规划实现
  7. ims应用服务器,IMS应用
  8. 两个瓶子水怎样一样多_大班科学领域数学活动 | 一样多的水(容积守恒)
  9. 程序员辛酸泪——当程序员老去,程序员又何去何从
  10. [P1459 [USACO2.1]三值的排序 Sorting a Three-Valued Sequence]
  11. python json接口数据提取_返回数据中提取数据的方法(JSON数据取其中某一个值的方法)...
  12. 工作中遇到问题以及解决方法
  13. 迅为10.1寸人机界面工业HMI安卓电容屏定制生产供应商
  14. 一辈子很长,要和有趣的人在一起
  15. 请听一个故事------美国是一个愚蠢而落后的国度--大家千万别去
  16. MSXML操作XML的完整例子
  17. 使用C++的CCF-CSP满分解决方案 202206-2 寻宝!大冒险!点集
  18. Oracle时间与Unix时间戳的转换
  19. 图解!《养老机构服务安全基本规范》—养老第一项强制性国家标准
  20. Android | Compose 初上手

热门文章

  1. 对张子阳先生对委托和事件的两篇文章的读后思考(说得很透,内附故事一篇)...
  2. Java程序员必备英文,你确定不看看?
  3. onsen UI popover 的用法
  4. 在binary环境下的函数类型推断(一)
  5. 磊科路由器后门蜜罐捕获的事件分布情况
  6. 经济学本质上就是心里学
  7. Problem - 1042D - D. Petya and Array(树状数组)
  8. 【Ubuntu】腾讯QQ安装
  9. 考试系统服务器 倒计时,在线考试系统倒计时器实现(急)!谢谢!
  10. 怎么使用BaiduPCS-Go 百度网盘客户端