西安网站建设易网宣,iis上做的网站外网怎么访问不了,友情链接联盟,北京博洛尼装饰公司1. 题目
你是一位系统管理员#xff0c;手里有一份文件夹列表 folder#xff0c;你的任务是要删除该列表中的所有 子文件夹#xff0c;并以 任意顺序 返回剩下的文件夹。
我们这样定义「子文件夹」#xff1a;
如果文件夹 folder[i] 位于另一个文件夹 folder[j] 下…1. 题目
你是一位系统管理员手里有一份文件夹列表 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/d,/a/b/ca]
输出[/a/b/c,/a/b/ca,/a/b/d]提示
1 folder.length 4 * 10^4
2 folder[i].length 100
folder[i] 只包含小写字母和 /
folder[i] 总是以字符 / 起始
每个文件夹名都是唯一的来源力扣LeetCode 链接https://leetcode-cn.com/problems/remove-sub-folders-from-the-filesystem 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2. 解题
class Solution {
public:vectorstring removeSubfolders(vectorstring folder) {sort(folder.begin(), folder.end());vectorstring ans(1,folder[0]);string str folder[0]/;//便于查找 /a/b/c,/a/b/cafor(int i 1; i folder.size(); i){while(i folder.size() folder[i].find(str) ! folder[i].npos)i;//是前面的子文件夹继续往后查if(i folder.size())//不是前面文件夹的子文件夹{ans.push_back(folder[i]);//加入答案str ans.back()/;//更新后面查找的参考文件夹}}return ans;}
};