In this post, we are going to discuss leetcode 1233 — Remove Sub-Folders from the Filesystem, which is asked in Google, Meta, and Amazon interviews.
Problem Analysis
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 anotherfolder[j]
, it is called a sub-folder of it.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.
Example 1:
Input: folder = ["/a","/a/b","/c/d","/c/d/e","/c/f"]
Output: ["/a","/c/d","/c/f"]
Explanation: Folders "/a/b/" is a subfolder of "/a" and "/c/d/e" is inside of folder "/c/d" in our filesystem.
Example 2:
Input: folder = ["/a","/a/b/c","/a/b/d"]
Output: ["/a"]
Explanation: Folders "/a/b/c" and "/a/b/d/" will be removed because they are subfolders of "/a".
Example 3:
Input: folder = ["/a/b/c","/a/b/ca","/a/b/d"]
Output: ["/a/b/c","/a/b/ca","/a/b/d"]
My Thinking Process
This is an array and string problem. I cannot find a way to translate it to some specific…