小慕最近发现自己的磁盘空间经常被耗尽,他需要找出占用空间最大的目录或文件,以便决定如何清理文件释放空间。 给定某一目录,请编写程序帮助他统计该目录内一级子目录和文件的占用空间,并返回目标目录(文件或子目录)中占用空间最大的项。 规则说明 1. ,目录本身Size为0。 2. 目录深度不高于7层,目录或文件名总长度不超过128字节。 3. 当存在多个子项占用空间均为最大时,多个子项采用。 4. 目标目录不在文件系统中时(输入路径前缀匹配不到任何路径),返回空列表。
提示:带虚线的词点一下有通俗解释。
输入描述
参数1:要进行统计的目标目录。 参数2:文件系统内的文件列表。 参数3:文件Size列表,该列表中的数据和文件列表存在一一对应关系。
输出描述
目标目录一级子项(文件或子目录)中占用空间最大的项组成的列表。
示例
示例 1
输入
/dir1/dir2-1 /dir0/dir1-1/file1-1 /dir1/dir1-1/file1-1 /dir1/dir2-1/file3-1 /dir1/dir2-1/file3-2 /dir1/dir2-1/dir3-1/file4-1 8192 81920 2048 8192 1024
输出
/dir1/dir2-1/file3-2
说明:/dir1/di2-1下共有三个一级子项file3-1、file3-2、dir3-1,它们的占用空间统计如下: file3-1:2048 file3-2:8192 dir3-1:1024,其内部所有文件的size之和,由于内部只有一个文件file4-1,因此和file4-1的size一致 其中file3-2占用的空间最大,因此返回/dir1/di2-1/file3-2
示例 2
输入
/dir1 /dir0/di2-1/file3-1 /dir1/dir2-1/file3-1 /dir1/dir2-1/file3-2 /dir1/dir2-2/file3-3 /dir1/file2-3 10240 4096 8192 10240 8192
输出
/dir1/dir2-1
说明:/dir1下共有三个一级子项dir2-1、dir2-2、file2-3,它们的占用空间如下 dir2-1:12288,其内部所有文件的size之和,即file3-1和file3-2的size相加,结果为12288 dir2-2:10240,其内部所有文件的size之和,即file3-3的size 10240 file2-3:8192 其中dir2-1占用的空间最大,因此返回["dir1/dir2-1"]
示例 3
输入
/dir1 /dir1/dir1/file1 /dir1/dir1/file2 /dir1/dir2/file3 1024 2048 3072
输出
/dir1/dir1 /dir1/dir2
说明:/dir1下共有两个一级了项dir1、di2,它们的占用空间如下 dir1:3072,其内部所有文件的size之和,即file1和file2的size之和3072 dir2:3072,其内部所有文件的size之和,即file3的size 3072 由于dir1和dir2占用的空间一致,且为最大,因此需对这两个子项进行升序排列后返回。 返回结果为["/dir1/dir1", "/dir1/dir2"]
时间限制 1000 ms · 内存限制 128 MB