首页 > 其他分享 >leetcode 1233. 删除子文件夹

leetcode 1233. 删除子文件夹

时间:2023-02-13 11:07:24浏览次数:64  
标签:示例 1233 文件夹 pf ans folder leetcode


​1233. 删除子文件夹​



难度中等142


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

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

文件夹的「路径」是由一个或多个按以下格式串联形成的字符串:'/'

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

 

示例 1:

输入:folder = ["/a","/a/b","/c/d","/c/d/e","/c/f"]
输出:["/a","/c/d","/c/f"]
解释:"/a/b" 是 "/a" 的子文件夹,而 "/c/d/e" 是 "/c/d" 的子文件夹。

示例 2:

输入:folder = ["/a","/a/b/c","/a/b/d"]
输出:["/a"]
解释:文件夹 "/a/b/c" 和 "/a/b/d" 都会被删除,因为它们都是 "/a" 的子文件夹。

示例 3:

输入: folder = ["/a/b/c","/a/b/ca","/a/b/d"]
输出: ["/a/b/c","/a/b/ca","/a/b/d"]

 

提示:

  • ​1 <= folder.length <= 4 * 104​
  • ​2 <= folder[i].length <= 100​
  • ​folder[i]​​​ 只包含小写字母和 ​​'/'​
  • ​folder[i]​​​ 总是以字符 ​​'/'​​ 起始
  • 每个文件夹名都是 唯一 的
function removeSubfolders(folder) {
folder.sort();

const ans = [folder[0]];
let pf = folder[0] + '/';

for (let i = 1; i < folder.length; i++) {
if (!folder[i].startsWith(pf)) {
ans.push(folder[i]);
pf = folder[i] + '/';
}
}

return ans;
};

leetcode 1233. 删除子文件夹_职场和发展

标签:示例,1233,文件夹,pf,ans,folder,leetcode
From: https://blog.51cto.com/u_15283585/6053719

相关文章

  • LeetCode算法题二——合并两个有序链表
    题目给你一个非空整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问......
  • LeetCode刷题(一)——两数之和
    题目:给定一个整数数组nums 和一个整数目标值target,请你在该数组中找出和为目标值target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案......
  • #yyds干货盘点# LeetCode程序员面试金典:布尔运算
    题目:给定一个布尔表达式和一个期望的布尔结果result,布尔表达式由0(false)、1(true)、&(AND)、|(OR)和^(XOR)符号组成。实现一个函数,算出有几种可使该表达式得出......
  • LeetCode_单周赛_332
    6354.找出数组的串联值题意将数组首尾元素接在一起,就是串联值。串联之后删除,如果只剩下一个元素,加上这个元素即可双指针,从首和尾向中间移动即可code注意:用long没......
  • 【DFS】LeetCode 108. 将有序数组转换为二叉搜索树
    题目链接108.将有序数组转换为二叉搜索树思路类似于二分搜索,定位到数组中间mid,然后左边的子数组构成左子树,右边的子数组构成右子树,mid处的数字构成根结点。递归构建......
  • 【DFS】LeetCode 669. 修剪二叉搜索树
    题目链接669.修剪二叉搜索树思路若root.val小于边界值low,则root的左子树必然均小于边界值,我们递归处理root.right即可;若root.val大于边界值high,则root的......
  • 【DFS】LeetCode 98. 验证二叉搜索树
    题目链接98.验证二叉搜索树思路依据BST的定义:左子树的结点都比根结点小,右子树的结点都比根结点大。我们在递归过程中传递根节点的值,判断当前结点值与根结点值的大小......
  • [leetcode每日一题]2.12
    ​​1138.字母板上的路径​​难度中等79我们从一块字母板上的位置 ​​(0,0)​​ 出发,该坐标对应的字符为 ​​board[0][0]​​。在本题里,字母板为​​board=["abcde......
  • 【LeetCode字符串#05】基于个人理解的KMP算法图解,以及应用到strStr()函数实现
    KMP算法(用于实现strStr())strStr()函数是用来在一个字符串中搜索是否存在另一个字符串的函数,其匹配字符串方式为KMP算法KMP算法基础理论假设有如下两个字符串文本串......
  • LeetCode回溯算法
    回溯模板1privatevoidbacktrack("原始参数"){2//终止条件(递归必须要有终止条件)3if("终止条件"){4//一些逻辑操作(可有可无,视情况而定)......