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

(LeetCode 每日一题) 1233. 删除子文件夹 (排序)

题目:1233. 删除子文件夹

在这里插入图片描述
在这里插入图片描述

思路:排序,时间复杂度0(L*nlogn)。

文件夹a的子文件b,b字符串字典序列一定是大于a的,所以直接将字符串数组folder升序排序。每次只需判断当前字符串,是否是父文件夹数组v最后一个字符串的子文件夹即可,细节看注释。

C++版本:

class Solution {
public:// 判断a是否是b的前缀,且b[a.size()]=='/'bool check(string a,string b){if(a.size()>b.size()) return false;for(int i=0;i<a.size();i++){if(a[i]!=b[i]) return false;}if(b.size()>a.size() &&b[a.size()]=='/') return true;return false;}vector<string> removeSubfolders(vector<string>& folder) {// 升序sort(folder.begin(),folder.end());// 答案:父文件夹数组vector<string> v;v.push_back(folder[0]);for(int i=1;i<folder.size();i++){string last=v.back();string t=folder[i];// 判断last是否是t的前缀,且t[last.size()]=='/'if(check(last,t)==false){v.push_back(t);}}return v;}
};

JAVA版本:

class Solution {boolean check(String a,String b){if(a.length()>b.length()) return false;for(int i=0;i<a.length();i++){if(a.charAt(i)!=b.charAt(i)) return false;}if(b.length()>a.length() &&b.charAt(a.length())=='/') return true;return false;}public List<String> removeSubfolders(String[] folder) {Arrays.sort(folder);List<String> v = new ArrayList<>();v.add(folder[0]);for(int i=1;i<folder.length;i++){String last=v.getLast();String t=folder[i];if(check(last,t)==false){v.add(t);}}return v;}
}

GO版本:

func removeSubfolders(folder []string) []string {slices.Sort(folder)v:=[]string{folder[0]}for i:=1;i<len(folder);i++ {last:=v[len(v)-1]t:=folder[i]if check(last,t)==false {v=append(v,t)}}return v
}
func check(a,b string) bool {if len(a)>len(b) {return false}for i,_:=range a {if a[i]!=b[i] {return false}}if len(b)>len(a) && b[len(a)]=='/' {return true}return false
}
http://www.xdnf.cn/news/15918.html

相关文章:

  • 统计学习方法
  • 堆堆堆,咕咕咕
  • python的多线程无法并行只能并发,why?
  • GA-BP遗传算法优化BP神经网络数据生成,采用SVM分类模型评估
  • roslaunch 文件的核心语法和使用技巧
  • Linux内核设计与实现 - 第5章 系统调用
  • docker构建springboot镜像
  • 数据结构之图
  • 【办公类-107-02】20250719视频MP4转gif(削减MB)
  • MyBatis分页神器PageHelper深度解析
  • 深入解析文件操作(上)- 二进制文件和文本文件,流的概念,文件的打开和关闭
  • 计算机网络1.1:计算机网络在信息时代的作用
  • Redis常见线上问题
  • Javascript进程和线程通信
  • VIT速览
  • Nestjs框架: RxJS 核心方法实践与错误处理详解
  • XSS漏洞----基于Dom的xss
  • 混沌趋势指标原理及交易展示
  • python爬虫之获取渲染代码
  • Python 数据分析模板在工程实践中的问题诊断与系统性解决方案
  • 探索量子计算与法律理论的交叉领域
  • Zephyr环境搭建 - Board GD32A503
  • 力扣 hot100 Day49
  • 数据集下载网站
  • XSS漏洞知识总结
  • [spring6: AspectMetadata AspectInstanceFactory]-源码解析
  • PCIe RAS学习专题(3):AER内核处理流程梳理
  • 消息队列:数字化通信的高效纽带
  • 1009 - 数组逆序
  • Spring监听器