题目:​​原题链接​(中等)

标签:字符串

解法

时间复杂度

空间复杂度

执行用时

Ans 1 (Python)

O(N×C) : 其中C为路径平均深度

O(N×C) : 其中C为路径平均深度

376ms (28.06%)

Ans 2 (Python)

O(NlogN)

O(NlogN)

244ms (92.45%)

Ans 3 (Python)

解法一(暴力解法):

class Solution:
def removeSubfolders(self, folder: List[str]) -> List[str]:
# 将所有地址存入集合中
folders = set(folder)

# 遍历判断是否存在于集合中
ans = []
for f in folder:
path = f.split("/")
for i in range(1, len(path) - 1):
if "/".join(path[:i + 1]) in folders:
break
else:
ans.append(f)

return ans

解法二(排序法):

class Solution:
def removeSubfolders(self, folder: List[str]) -> List[str]:
ans = []
last = " "
folder.sort()
for f in folder:
if not f.startswith(last):
ans.append(f)
last = f + "/"
return ans