一、题目要求

  • TinyURL 是一种 URL 简化服务,比如:当你输入一个 URL https://leetcode.com/problems/design-tinyurl 时,它将返回一个简化的URL http://tinyurl.com/4e9iAk。
  • 要求:设计一个 TinyURL 的加密 encode 和解密 decode 的方法,你的加密和解密算法如何设计和运作是没有限制的,只需要保证一个 URL 可以被加密成一个 TinyURL,并且这个 TinyURL 可以用解密方法恢复成原本的 URL。

二、求解算法

① 使用简单的计数

  • 为了加密 URL,我们使用计数器 (i) ,每遇到一个新的 URL 都加一。
  • 将 URL 与它的次数 i 放在哈希表 HashMap 中,这样在稍后的解密中可以轻易地获得原本的 URL。
  • Java 示例:
public class Codec {Map<Integer,

【数据结构与算法】之深入解析“TinyURL加密与解密”的求解思路与算法示例相关推荐

  1. 【数据结构与算法】之深入解析“扁平化多级双向链表”的求解思路与算法示例

    一.题目要求 你会得到一个双链表,其中包含的节点有一个下一个指针.一个前一个指针和一个额外的子指针,这个子指针可能指向一个单独的双向链表,也包含这些特殊的节点.这些子列表可以有一个或多个自己的子列表, ...

  2. 【数据结构与算法】之深入解析“分割数组的最大值”的求解思路与算法示例

    一.题目要求 给定一个非负整数数组 nums 和一个整数 m ,你需要将这个数组分成 m 个非空的连续子数组,设计一个算法使得这 m 个子数组各自和的最大值最小. 示例 1: 输入:nums = [7 ...

  3. 【数据结构与算法】之深入解析“最长连续序列”的求解思路与算法示例

    一.题目要求 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度. 请你设计并实现时间复杂度为 O(n) 的算法解决此问题. 示例 1: 输入:nums ...

  4. 【数据结构与算法】之深入解析“字符串转换整数 (atoi)”的求解思路和算法示例

    一.题目要求 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数). 函数 myAtoi(string s) ...

  5. 【数据结构与算法】之深入解析“我的日程安排表II”的求解思路与算法示例

    一.题目要求 实现一个 MyCalendar 类来存放你的日程安排,如果要添加的时间内不会导致三重预订时,则可以存储这个新的日程安排. MyCalendar 有一个 book(int start, i ...

  6. 【数据结构与算法】之深入解析“我的日程安排表I”的求解思路与算法示例

    一.题目要求 实现一个 MyCalendar 类来存放你的日程安排,如果要添加的日程安排不会造成重复预订,则可以存储这个新的日程安排. 当两个日程安排有一些时间上的交叉时(例如两个日程安排都在同一时间 ...

  7. 【数据结构与算法】之深入解析“修剪二叉搜索树”的求解思路与算法示例

    一.题目要求 给你二叉搜索树的根节点 root,同时给定最小边界 low 和最大边界 high,通过修剪二叉搜索树,使得所有节点的值在 [low, high] 中. 修剪树不应该改变保留在树中的元素的 ...

  8. 【数据结构与算法】之深入解析“分数加减运算”的求解思路与算法示例

    一.题目要求 给定一个表示分数加减运算的字符串 expression,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 2,你需要将它转换 ...

  9. 【数据结构与算法】之深入解析“学生出勤记录II”的求解思路与算法示例

    一.题目要求 可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤.迟到.到场).记录中只含下面三种字符: 'A':Absent,缺勤: 'L':Late,迟到: 'P':P ...

最新文章

  1. mysql报错 Incorrect table definition;there can be only one auto column and it must be defined as a key
  2. 收藏|MySQL常用语法小结
  3. python【数据结构与算法】从一个例子引入动态规划❤️
  4. 重构与模式:改善代码三部曲中的第三部
  5. c语言哈夫曼压缩文本,用哈夫曼压缩文件(C语言)
  6. 浅谈双人游戏的设计与魅力——由《双人成行》引发的思考
  7. flink写入 mysql_flink写数据到mysql(java)
  8. strtok_r实现方式之一
  9. Seata多微服务互相调用_全局分布式事物使用案例_业务数据库准备---微服务升级_SpringCloud Alibaba工作笔记0059
  10. kafka-3-故障排错
  11. 解密阿里云之飞天平台内核
  12. HDU 1061 Rightmost Digit --- 快速幂取模
  13. 图像处理和计算机视觉中的经典论文(转)
  14. spring较为常用注解
  15. Android 4.2蓝牙介绍
  16. B端产品经理是一种什么样的存在?
  17. C语言 枚举——熄灯问题
  18. nginx静态资源优化配置方法
  19. Android Backup功能之全面实战
  20. 公众号内测算法推荐引争议,却有小号因此阅读增长20倍

热门文章

  1. GoldenGate 基本参数含义
  2. 常见的社会潜规则有哪些?
  3. WPF IP地址输入控件的实现
  4. github删除错误的commit并保留之前的提交
  5. centos7安装svn服务
  6. 核心动画05-CAAnimationGroup
  7. 将excel用VBA生成指定格式的TXT文件
  8. javascript王者归来--属性和方法的类型
  9. 和鸿蒙系统合作品牌,华为:明年将有超40家主流品牌、1亿台设备成为鸿蒙系统新入口...
  10. 如何实现场景切换的java_JavaFX + Scene Builder如何切换场景(JavaFX + Scene Builder how switch scene)...