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

2023-2-9 刷题情况

删除子文件夹

题目描述

你是一位系统管理员,手里有一份文件夹列表 folder,你的任务是要删除该列表中的所有 子文件夹,并以 任意顺序 返回剩下的文件夹。

如果文件夹 folder[i] 位于另一个文件夹 folder[j] 下,那么 folder[i] 就是 folder[j] 的 子文件夹 。

文件夹的「路径」是由一个或多个按以下格式串联形成的字符串:‘/’ 后跟一个或者多个小写英文字母。

例如,“/leetcode” 和 “/leetcode/problems” 都是有效的路径,而空字符串和 “/” 不是。

样例

样例输入

folder = [“/a”,“/a/b”,“/c/d”,“/c/d/e”,“/c/f”]
folder = [“/a”,“/a/b/c”,“/a/b/d”]
folder = [“/a/b/c”,“/a/b/ca”,“/a/b/d”]

样例输出

[“/a”,“/c/d”,“/c/f”]
[“/a”]
[“/a/b/c”,“/a/b/ca”,“/a/b/d”]

提示

  • 1 <= folder.length <= 4 * 10^4
  • 2 <= folder[i].length <= 100
  • folder[i] 只包含小写字母和 ‘/’
  • folder[i] 总是以字符 ‘/’ 起始
  • 每个文件夹名都是 唯一 的

思路

其实第一眼看过去,并没有什么思路,不过经过这次,应该知道怎么解决这种问题了。
使用的思路是排序,按照字典序排序。

代码实现

class Solution {public List<String> removeSubfolders(String[] folder) {// 按照字典序排序Arrays.sort(folder);List<String> ans = new ArrayList<String>();ans.add(folder[0]);for(int i = 1; i < folder.length; i++){int pre = ans.get(ans.size()-1).length();/* ,满足删除有三个条件:1.当前文件长度大于集合最后一个的长度2.当前路径的前段区间长度与上一个完全相等(equals)3.符合上面两个条件后,与上一个区间完全相等的后一个字符为/*/if(!(pre < folder[i].length() && ans.get(ans.size()-1).equals(folder[i].substring(0, pre)) && folder[i].charAt(pre) == '/')) ans.add(folder[i]);}return ans;}
}

最近有点怪,心境乱了。

http://www.lryc.cn/news/89.html

相关文章:

  • Homekit智能家居DIY设备-智能通断开关
  • 【java】EJB(Enterprise Java Bean)概述
  • Android 10.0 Launcher3桌面禁止左右滑动
  • 日期类的实现
  • 2022年这5款熟悉的软件退出了历史舞台
  • 用Nginx打包部署vue3项目及404和500解决
  • Java面试——多线程并发篇
  • 维基百科数据抽取
  • 2020年因果推断综述《A Survey on Causal Inference》
  • 嵌入式linux系统测试程序编写
  • 力扣SQL刷题5
  • 动态规划详解(完结篇)——如何抽象出动态规划算法?以及解题思路
  • C语言一维数组篇【下】——每日刷题经验分享
  • VHDL语言基础-组合逻辑电路-其它组合逻辑模块
  • 初识Vue
  • TOUGH系列软件建模实践方法及在地下水、CO2地质封存、水文地球化学、地热等多相多组分系统多过程耦合
  • Codeforces Round #699 (Div. 2)
  • MySQL存储过程的传参和流程控制
  • MySQl学习(从入门到精通11)
  • 关于ThreadLocal
  • 【C++】类和对象(中)
  • js下载文件
  • ESP8266 + STC15+ I2C OLED带网络校时功能的定时器时钟
  • 计算机入门基础知识大全
  • Python程序出现错误怎么办?
  • 【Vue3】v-if和v-for优先级
  • Windows上实现 IOS 自动化测试
  • Linux云服务器下怎么重置MySQL8.0数据库密码
  • JVM调优
  • 【配电网规划】SOCPR和基于线性离散最优潮流(OPF)模型的配电网规划( DNP )(Matlab代码实现)