探索flutter框架开发的app在移动应用市场的潜力与挑战
564
2022-11-08
[leetcode] 1233. Remove Sub-Folders from the Filesystem
Description
Given a list of folders, remove all sub-folders in those folders and return in any order the folders after removing.
If a folder[i] is located within another folder[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"]
Constraints:
1 <= folder.length <= 4 * 10^4.2 <= folder[i].length <= 100.folder[i] contains only lowercase letters and ‘/’.folder[i] always starts with character ‘/’.Each folder name is unique.
分析
题目的意思是:保留一个数组里面的所有根目录,其他的删除。 我看见这题一开始的想法就是暴力破解,发现肯定复杂度很高,后面发现先排序,然后有同一根目录的目录就会被排序到一起,这样的话再遍历一次找出所有的根目录就行了。
class Solution: def removeSubfolders(self, folder: List[str]) -> List[str]: folder.sort() res=[] parent=' ' for f in folder: if(not f.startswith(parent)): res.append(f) parent=f+'/' return res
参考文献
[LeetCode] [Python] Easy to understand, Sort & Check Parent, Faster than 100%
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~