LeetCode中等题之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 <= 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 的加密与解密相关推荐
- LeetCode 每日一题——535. TinyURL 的加密与解密
1.题目描述 535. TinyURL 的加密与解密 TinyURL 是一种 URL 简化服务, 比如:当你输入一个 URL https://leetcode.com/problems/design- ...
- LeetCode刷题实战535:TinyURL 的加密与解密
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- 【力扣每日一题】535. TinyURL 的加密与解密
题目描述 535. TinyURL 的加密与解密 难度中等168 TinyURL 是一种 URL 简化服务, 比如:当你输入一个 URL https://leetcode.com/problems/d ...
- Java实现 LeetCode 535 TinyURL 的加密与解密(位运算加密)
535. TinyURL 的加密与解密 TinyURL是一种URL简化服务, 比如:当你输入一个URL https://leetcode.com/problems/design-tinyurl 时,它 ...
- 535. TinyURL 的加密与解密 : 设计一个 URL 简化系统
题目描述 这是 LeetCode 上的 「535. TinyURL 的加密与解密」 ,难度为 「中等」. Tag : 「哈希表」.「模拟」 TinyURL 是一种 URL 简化服务, 比如:当你输入一 ...
- leetcode-cpp 535.TinyURL的加密和解密
535.TinyURL的加密和解密 题目: 链接 leetcode solution: 中等难度,总结来说就是看好题目意思就行,有个标志位能够用来区分长长长,mp<string,string&g ...
- 【535. TinyURL 的加密与解密】
来源:力扣(LeetCode) 描述: TinyURL 是一种 URL 简化服务, 比如:当你输入一个 URL https://leetcode.com/problems/design-tinyurl ...
- TinyURL 的加密与解密
题目来源 TinyURL是一种URL简化服务, 比如:当你输入一个URL https://leetcode.com/problems/design-tinyurl 时,它将返回一个简化的URL htt ...
- Leetcode 535.TinyURL的加密与解密
Time: 20190920 Type: Medium 题目描述 TinyURL是一种URL简化服务, 比如:当你输入一个URL https://leetcode.com/problems/desig ...
最新文章
- php_mongo.dll下载(php操作mongoDB需要)
- Lightroom Classic CC8.2安装教程 IT宝盒 10-14 20:32
- 字节流写数据的两个小问题
- windows+nginx+tomcat实现集群负载均衡(生产环境必读)
- iOS开发iPhone竖屏icon尺寸与启动页尺寸汇总
- 买书问题的动态规划实现
- ims应用服务器,IMS应用
- 两个瓶子水怎样一样多_大班科学领域数学活动 | 一样多的水(容积守恒)
- 程序员辛酸泪——当程序员老去,程序员又何去何从
- [P1459 [USACO2.1]三值的排序 Sorting a Three-Valued Sequence]
- python json接口数据提取_返回数据中提取数据的方法(JSON数据取其中某一个值的方法)...
- 工作中遇到问题以及解决方法
- 迅为10.1寸人机界面工业HMI安卓电容屏定制生产供应商
- 一辈子很长,要和有趣的人在一起
- 请听一个故事------美国是一个愚蠢而落后的国度--大家千万别去
- MSXML操作XML的完整例子
- 使用C++的CCF-CSP满分解决方案 202206-2 寻宝!大冒险!点集
- Oracle时间与Unix时间戳的转换
- 图解!《养老机构服务安全基本规范》—养老第一项强制性国家标准
- Android | Compose 初上手