(每日一练28764)题目名称:目录结构

文盲老顾
WEB应用领新星创作者
博客专家认证
2023-04-20 10:30:28

给你一串路径,譬如: ac ade bcst d 你把这些路径中蕴含的目录结构给画出来,子目录直接列在父目录下面,并比父目录向右缩一格,就像这样: a b c d e b cst d 同一级的需要按字母顺序排列,不能乱。(注意:测试用例仅做参考,我们会根据代码质量进行评分

嗯。。。。请忽视示例吧,这个示例完全不知所谓,csdn 的题目就是这么有特色,从其他站抄来的题目,总会在抄的过程中出错,为什么这么说呢,看看示例就知道了

img


很明显,ade 那一行的数据应该是 a/d/e 才合理,否则怎么会分开呢。毕竟下边的 cst 并没有分开啊。

所以,先按照正常逻辑做一遍

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% 通过率。。。。这绝对又是哪里抄的时候出问题了,后来问哥告知。。。。这个牛客网原题,抄错了

img

行吧,咱的 out 方法改一下, ' ' * l 部分改成 ' ' * 0 或者干脆去掉,然后一提交。。。100% 通过了

...全文
109 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
文盲老顾 2023-07-01
  • 打赏
  • 举报
回复
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)

321

社区成员

发帖
与我相关
我的任务
社区描述
主要用于技术交流,包括但不限于 .net,mssql,js,css,python,算法,运维。也可以晒最新技术,美图,运动等。最后,如果有问题,可以提问,老顾能帮忙的会尽量帮忙哦。
前端sqlserverasp.net 技术论坛(原bbs) 北京·西城区
社区管理员
  • 文盲老顾
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧