#1233
Medium Algorithms Remove sub folders from the filesystem
Array String Depth-First Search Trie
78.6% acceptance
Feb 25, 2026
1653
231
Given a list of folders folder, return the folders after removing all sub-folders in those folders. You may return the answer in any order.
If a folder[i] is located within another folder[j], it is called a sub-folder of it. A sub-folder of folder[j] must start with folder[j], followed by a "/". For example, "/a/b" is a sub-folder of "/a", but "/b" is not a sub-folder of "/a/b/c".
The format of a path is one or more concatenated strings of the form: '/' followed by one or more lowercase English letters.
For example, "/leetcode" and "/leetcode/problems" are valid paths while an empty string and "/" are not.
Solution
Rust
Time O(n log n)
Space O(n)
impl Solution {
pub fn remove_subfolders(mut folder: Vec<String>) -> Vec<String> {
folder.sort();
let mut result: Vec<String> = Vec::new();
for f in folder {
if let Some(last) = result.last() {
// Check if f starts with last + "/"
let prefix = format!("{}/", last);
if f.starts_with(&prefix) {
continue;
}
}
result.push(f);
}
result
}
}