当前位置: 首页 > article >正文

1166 设计文件系统

你需要设计一个文件系统,你可以创建新的路径并将它们与不同的值关联。

路径的格式是一个或多个连接在一起的字符串,形式为: / ,后面跟着一个或多个小写英文字母。例如, " /leetcode" 和 "/leetcode/problems" 是有效路径,而空字符串 "" 和 "/" 不是。

实现 FileSystem 类:

  • bool createPath(string path, int value) 创建一个新的 path ,并在可能的情况下关联一个 value ,然后返回 true 。如果路径已经存在或其父路径不存在,则返回 false 。
  •  int get(string path) 返回与 path 关联的值,如果路径不存在则返回 -1 。

示例 1:

输入: 
["FileSystem","create","get"]
[[],["/a",1],["/a"]]
输出: 
[null,true,1]
解释: 
FileSystem fileSystem = new FileSystem();

fileSystem.create("/a", 1); // 返回 true
fileSystem.get("/a"); // 返回 1

示例 2:

输入: 
["FileSystem","createPath","createPath","get","createPath","get"]
[[],["/leet",1],["/leet/code",2],["/leet/code"],["/c/d",1],["/c"]]
输出: 
[null,true,true,2,false,-1]
解释:
FileSystem fileSystem = new FileSystem();

fileSystem.createPath("/leet", 1); // 返回 true
fileSystem.createPath("/leet/code", 2); // 返回 true
fileSystem.get("/leet/code"); // 返回 2
fileSystem.createPath("/c/d", 1); // 返回 false 因为父路径 "/c" 不存在。
fileSystem.get("/c"); // 返回 -1 因为该路径不存在。

提示:

  • 对两个函数的调用次数加起来小于等于 104 
  • 2 <= path.length <= 100
  • 1 <= value <= 109 

------------------------------------------------------------------------------------------------------

方法 1:用哈希表来存储路径
前言

这种方法可以说是基于模拟的方式来解决这个问题。我们称之为基于模拟的方法是因为它不使用任何花哨的数据结构来存储路径,基本上,我们只是按照问题要求的方式执行两个函数。我们只需要一个键值数据结构,再加上一些附加的处理来验证是否将一条路径添加进来。自然而然,一个 HashMap 或者一个 dictionary 似乎是一个不错的数据结构。

我们来看一个示例,通过这个例子我们可以看到当我们不断添加更多的路径到 HashMap 中时,HashMap


http://www.kler.cn/news/360659.html

相关文章:

  • Nuxt.js 应用中的 app:templatesGenerated 事件钩子详解
  • 京东详情 API 接口有什么应用与价值?
  • 【牛客刷题】笔记2
  • 科研类型PPT的制作技巧
  • 昇思MindSpore进阶教程--Running Data Recorder
  • 我对需求分析的理解
  • 解决篡改猴 URL is not permit
  • 移除Microsoft Edge浏览器“由你的组织管理“提示的方法
  • Vue3使用element plus时el-menu导航选中后刷新页面及修改URL无法保持当前选中状态问题
  • Go 语言中格式化动词
  • 深入理解左值和右值:软件工程中的基本概念
  • 复习:react 中的 refs,怎么使用,有哪些使用场景
  • 如何写一个视频编码器演示篇
  • Python处理超大json文件的几种方案
  • 常见的消息队列(MQ)框架
  • 基于yolov10的驾驶员抽烟打电话安全带检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面
  • 微积分复习笔记 Calculus Volume 1 - 3.3 Differentiation Rules
  • 燕山大学23级经济管理学院 10.18 C语言作业
  • 飞凌嵌入式FET527N-C核心板已适配OpenHarmony4.1
  • 解决springboot redisTemplate lua execute hash脚本 field有转义符的问题