题目大意:
有n条linux系统的文件夹或者文件路径信息,要求按照字典升序(大小写敏感)整理出树状目录结果,不同层次目录相差2个空格的缩进。同一目录下保证文件夹不重名,以‘/’结尾为文件夹路径,否则为文件路径。
输入:
第一个输入:路径信息条数num
接下来num行为路径信息信息
输出:
按字典升序输出树状目录
样例1 | 样例2 |
【输入】: 5 usr/local/lib64 GAMES usr/DRIVERS home var/log/ 【输出】: GAMES home usr DRIVERS local lib64 var log | 【输入】: 7 Root/A drv root/b/ Root/ root1/a root2/a root1/b 【输出】: Root A drv root b root1 a b root2 a |
def type_dict(path,path_dict):
#将多个路径按字典进行递归分级存储,添加到字典中
if path:
cur_path=path[0]
if cur_path not in path_dict:
path_dict[cur_path]={}
type_dict(path[1:],path_dict[cur_path])
def type_dict_gen(path,path_type_list,tab_num):
#按字典序逐层遍历,添加到列表中
for key,value in sorted(path.items(),key=lambda x:x[0]):
key=" "*tab_num+key
path_type_list.append(key)
if value:
type_dict_gen(value,path_type_list,tab_num+2)
def data_type_generate():
path_type = {}
n=int(input())
for i in range(n):
path = input().strip("/")
path=path.split("/")
type_dict(path=path,path_dict=path_type)
path_type_list=[]
type_dict_gen(path_type,path_type_list,tab_num=0)
return '\n'.join(path_type_list)
print(data_type_generate())