321
社区成员




给你一串路径,譬如: ac ade bcst d 你把这些路径中蕴含的目录结构给画出来,子目录直接列在父目录下面,并比父目录向右缩一格,就像这样: a b c d e b cst d 同一级的需要按字母顺序排列,不能乱。(注意:测试用例仅做参考,我们会根据代码质量进行评分
嗯。。。。请忽视示例吧,这个示例完全不知所谓,csdn 的题目就是这么有特色,从其他站抄来的题目,总会在抄的过程中出错,为什么这么说呢,看看示例就知道了
所以,先按照正常逻辑做一遍
import re
n = int(input())
inp = []
d = {}
def add(d,p):
if len(p) == 0 or len(p[0]) == 0:
return
if p[0] not in d:
d[p[0]] = {}
add(d[p[0]],p[1:])
def out(d,l):
r = ''
for k in sorted(d):
r += ' ' * l + k + '\n'
r += out(d[k], l + 1)
return r
for i in range(n):
inp.append(input())
add(d,re.split(r'[/\\]+',inp[-1]))
ans = out(d,0)
print(ans)
做完一提交。。。30% 通过率。。。。这绝对又是哪里抄的时候出问题了,后来问哥告知。。。。这个牛客网原题,抄错了
行吧,咱的 out 方法改一下, ' ' * l 部分改成 ' ' * 0 或者干脆去掉,然后一提交。。。100% 通过了
import re
n = int(input())
inp = []
d = {}
def add(d,p):
if len(p) == 0 or len(p[0]) == 0:
return
if p[0] not in d:
d[p[0]] = {}
add(d[p[0]],p[1:])
def out(d,l):
r = ''
for k in sorted(d):
r += k + '\n'
r += out(d[k], l + 1)
return r
for i in range(n):
inp.append(input())
add(d,re.split(r'[/\\]+',inp[-1]))
ans = out(d,0)
print(ans)