(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.pswp.cn/diannao/91901.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/91901.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/91901.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

集成算法學習bagging,boosting,stacking

baggibg(rf隨機森林) adaboostibg 用來展示 Project Jupyter | Home 展示源碼 Eclipse IDE | The Eclipse Foundation Eclipse 下載 |Eclipse 基金會 教程8-Adaboost決策邊界效果_嗶哩嗶哩_bilibili (23 封私信) 圖解機器學習神器&#xff1a;Scikit-Learn - 知乎 Baggi…

HOOPS SDK賦能PLM:打造全生命周期3D數據管理與協作能力

在制造業和工業領域&#xff0c;產品全生命周期管理&#xff08;PLM&#xff09; 已成為驅動企業數字化轉型、提升創新力與運營效率的核心引擎。一個高效的PLM平臺不僅需要管理海量的設計數據&#xff0c;還必須在設計、制造、供應鏈、銷售和服務等多個環節之間無縫流轉信息&am…

解決 Selenium 頁面跳轉過快導致的內容獲取問題:從原理到實踐

在使用 Selenium 進行網頁自動化操作時&#xff0c;很多開發者都會遇到一個頭疼的問題&#xff1a;頁面還沒加載完&#xff0c;代碼就已經執行到下一句了。結果要么是元素找不到&#xff0c;要么是獲取的內容不完整&#xff0c;甚至直接拋出異常。今天我們就來聊聊如何優雅地解…

【Python練習】051. 編寫一個函數,實現簡單的定時器功能

051. 編寫一個函數,實現簡單的定時器功能 051. 編寫一個函數,實現簡單的定時器功能 代碼說明: 示例運行: 擴展功能 代碼說明: 實現Python定時器的幾種方法 051. 編寫一個函數,實現簡單的定時器功能 以下是一個簡單的Python函數,用于實現定時器功能。這個定時器可以設置…

springboot基礎-demo

1.創建學生信息表 create table stu(id int unsigned primary key auto_increment comment ID,name varchar(100) comment 姓名,age tinyint unsigned comment 年齡,gender tinyint unsigned comment 性別, 1:男, 2:女,score double(5,2) comment 成績,phone varchar(11) comme…

關于transformer的一些疑點總結

殘差連接的作用 Transformer中的殘差連接&#xff08;Residual Connection&#xff09;是其深層架構能穩定訓練的核心設計之一&#xff0c;主要通過以下機制發揮作用&#xff1a; 1. 緩解梯度消失&#xff0c;支持深層訓練 梯度保護機制&#xff1a;在反向傳播時&#xff0c;…

【終極指南】解決 Windows 11 更新后 Docker 連接 localhost 奇慢(卡頓、超時十幾秒)的通用方案

聰明人能看得出這是 ai 寫的&#xff0c;但也是我親身實踐的&#xff0c;最后讓 ai 總結寫了一篇&#xff0c;放心食用 一、 結論先行&#xff08;直接用&#xff09;問題現象&#xff1a; 升級到某個 Windows 11 版本后&#xff0c;在本地訪問 Docker 容器中部署的任何服務&am…

Stream API

Java 8 引入的 Stream API 是處理集合數據的強大工具&#xff0c;它允許你以聲明式方式處理數據集合&#xff0c;支持各種聚合操作和并行處理。以下是 Stream API 的核心知識點及具體代碼示例&#xff1a; 1. Stream 概述 Stream 是數據渠道&#xff0c;用于操作數據源&#xf…

相機參數的格式與作用

在計算機視覺中&#xff0c;相機標定是非常重要的一步&#xff0c;主要目的是從圖像中恢復出物體的三維信息。為了做到這一點&#xff0c;我們需要了解和使用一系列的數學工具&#xff0c;這些工具描述了相機的成像過程&#xff0c;包括相機的內參、外參、畸變系數、投影矩陣和…

【jvm|基本原理】第四天

摘要&#xff1a;本文簡單分析了Java虛擬機的核心運行機制。首先介紹了基本數據類型在32位和64位虛擬機中的存儲差異&#xff0c;說明slot槽設計以空間換時間的優化思路。其次詳細解析了對象在堆內存中的存儲結構&#xff0c;包括對象頭、對象數據和對齊填充機制。然后探討了方…

Git高級操作與最佳實踐詳解

前言 熟練掌握Git的高級操作可以顯著提高開發效率&#xff0c;優化工作流程&#xff0c;解決復雜問題。本文將詳細介紹Git的高級操作技巧與最佳實踐&#xff0c;幫助開發者更加高效地管理代碼和協作開發。 1. 提交歷史管理 1.1 修改最近的提交 # 修改最近的提交信息 git co…

ElasticSearch:商品SKU+SPU實現join查詢,設計及優化

文章目錄一、SPUSKU1、商品SPU和SKU2、SPU和SKU的關系3、實現SPUSKU父子嵌套查詢1. **嵌套對象&#xff08;Nested Objects&#xff09;**2. **父子關系&#xff08;Parent-Child&#xff09;**3. **應用層關聯&#xff08;Application-Side Join&#xff09;**&#xff08;推薦…

Objective-c 初階 —— Runtime(方法交換 消息傳遞)

一、消息傳遞1、什么是消息[a func1];我們會把這種用方括號來調函數的方式稱為發消息。對于這個例子&#xff0c;就相當于我們給 a 這個對象發了個 func1 的消息&#xff08;個人認為指令更好理解&#xff09;。2、什么是 selectorselector 就是一個函數區分器。它只會給這個方…

【計算機網絡架構】樹型架構簡介

引言在當今數字化時代&#xff0c;網絡架構如同復雜的神經系統&#xff0c;支撐著各種信息的流通與交互。從個人日常的網絡瀏覽、在線購物&#xff0c;到企業的遠程辦公、數據存儲&#xff0c;再到國家層面的政務信息化、智慧城市建設&#xff0c;網絡架構都扮演著不可或缺的角…

llama-factory快速開始

llama-factory快速開始 文章目錄llama-factory快速開始前言一、環境配置1.1 訓練順利運行需要包含4個必備條件1.2 llama-factory下載1.3 環境下載1.4 硬件環境校驗二、啟動前言 https://github.com/hiyouga/LLaMA-Factory/blob/main/README_zh.md這是GitHub中文介紹文檔&#…

408數據結構強化(自用)

常用代碼片段&#xff08;持續更新&#xff09;折半查找void SearchBinary(int A[];int x){int low 0, high n-1, mid;while(low<high){mid (lowhigh)/2;if(A[mid]x) break;else if(A[mid] < x) low mid 1;else high mid - 1;}順序表逆置void Reverse(SqList &…

linux cpu頻率和AVS調壓等級

1&#xff0c;linux常見的cpu頻率對應的電壓等級對應參數表如下:頻率&#xff08;GHz&#xff09;電壓&#xff08;V&#xff09;1.61.41.41.21.21.01.00.82&#xff0c;avs調壓的幾種方式linux內核宏解釋Linux內核中&#xff0c;AVS調壓的實現依賴于一些宏定義和配置選項&…

Input輸入和Screen相關

知識點using System.Collections; using System.Collections.Generic; using UnityEngine;public class Lesson11 : MonoBehaviour {// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){#region 注意&#xff0c…

如何在CSDN變現?如何賺錢?如何漲粉?如何找到優質大V博主合作伙伴?

&#x1f525; 2025最新 如何在CSDN變現&#xff1f;如何賺錢&#xff1f;如何跟對人&#xff1f;如何找到優質博主合作伙伴&#xff1f; 大家好&#xff0c;我是貓頭虎&#xff0c;今天??想和大家聊聊在CSDN平臺變現的問題。這也是絕大多數伙伴非常關心的一個話題——其實&…

OpenCV特征點提取算法orb、surf、sift對比

下面是 OpenCV 中三種常用特征點提取算法&#xff1a;ORB、SURF 和 SIFT 的詳細對比&#xff0c;從 算法原理、性能、使用限制 和 適用場景 多維度進行總結&#xff0c;幫助大家在實際項目中合理選擇。一覽表&#xff1a;ORB vs. SURF vs. SIFT屬性/算法ORBSURFSIFT全稱Oriente…