leetcode每日一題(1233 刪除子文件夾)
- 題目鏈接
- 分析:
- 首先將所給的文件夾列表按照字典序排列(sort()方法對字符串排序時,使用“ASCII 字符順序”。)
- 設(shè)置一個答案列表res, 將folder中的第一個元素加入列表中。從頭至尾遍歷排序后的字符串(文件夾名稱),如果folder[i - 1]是folder[i]的子序列,并且下一個字符是'/'。那么我們就確定folder[i]是folder[i - 1]的子目錄,此時什么也不做。否則,將folder[i]加入到res中。
- 返回res,即是最終的答案。
- 代碼:
class Solution:
def removeSubfolders(self, folder: List[str]) -> List[str]:
folder.sort()
res = [folder[0]]
for i in range(1, len(folder)):
if folder[i].startswith(res[-1]) and folder[i][len(res[-1])] == '/': pass
else: res.append(folder[i])
return res
class Solution {
public:
vector<string> removeSubfolders(vector<string>& folder) {
sort(folder.begin(), folder.end());
vector<string> res;
string j = folder[0];
res.push_back(j);
for(int i = 1; i < folder.size(); i++){
if (!(folder[i].substr(0, j.size()) == j && folder[i][j.size()] == '/')){
j = folder[i];
res.push_back(j);
}
}
return res;
}
};
- 總結(jié)
- 時間復(fù)雜度:
- 模擬題。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。