当前位置: 首页 > news >正文

OD 算法题 B卷【文件目录大小】

文章目录

  • 文件目录大小

文件目录大小

  • 一个文件目录的数据格式为:目录id,本目录中文件大小,(子目录id列表),其中目录id唯一,取值在【1,200】,目录中文件大小范围【1,1000】,子目录id列表长度【0,10】;
  • 例子:1 20 (2,3) 表示目录1中的文件总大小为20,有两个子目录,id分别为2和3;
  • 输入一个文件系统中所有的目录信息及待查询的目录id,返回待查询目录及其所有子目录的大小之和;

输入描述:
第一行输入m, n, 分别表示目录的个数及待查询目录id; m在【1,100】,n在【1, 200】;
后续m行,每行为一个目录数据;
输出描述:
待查询目录及其子目录的大小之和;

示例1
输入:
3 1
3 15 (0)
1 20 (2)
2 10 (3)
输出:
45

示例2
输入:
4 2
4 20 ()
5 30 ()
2 10 (4,5)
1 40 ()
输出:
60

python实现

  • DFS,递归函数栈

m, n = list(map(int, input().strip().split()))dir_data = []
for i in range(m):dir_id, dir_size, sub_dir = input().strip().split()digits = []for c in sub_dir.replace("(", "").replace(")", "").split(","):if c.isdigit():digits.append(int(c))dir_data.append([int(dir_id), int(dir_size), digits])  # 如 [[4, 20, []], [5, 30, []], [2, 10, [4, 5]], [1, 40, []]]print(dir_data)
result = 0# DFS 借助栈、函数栈
def dfs(n, dir_data):global resultfor d in dir_data:if d[0] == n:  # 找到目录result += d[1]if not d[2]: # 没有子目录returnfor sub_d in d[2]:dfs(sub_d, dir_data)dfs(n, dir_data)
print(result)

相关文章:

  • 【架构艺术】平衡技术架构设计和预期的产品形态
  • 托福阅读感悟40-3
  • 智能体觉醒:AI开始自己“动手”了-自主进化开启任务革命时代
  • 输入ifconfig,发现ens33不见了,无法连接至虚拟机
  • 华为IP(7)
  • 为什么有的编程语言允许字符串和整数相加?字符串和整数比较?字符串拼接?格式串详解?字面量?
  • 51单片机基础部分——LED
  • vscode + cmake + ninja+ gcc 搭建MCU开发环境
  • MobaXterm国内下载与安装使用教程
  • <5>, Qt系统相关
  • QT中更新或添加组件时出现“”qt操作至少需要一个处于启用状态的有效资料档案库“解决方法”
  • 性能优化 - 案例篇:缓存_Guava#LoadingCache设计
  • C# winform教程(二)
  • 小明的Java面试奇遇之商城系统的技术挑战与实战
  • 生产系统中TongWeb故障应急处理办法
  • 飞牛fnNAS装机之迷你小主机的利旧
  • 第14讲、Odoo 18 实现一个Markdown Widget模块
  • Java 面试中的数据库设计深度解析
  • C++读写锁以及实现方式
  • QtConcurrent run中抛出异常在QFutureWatcher传递原理
  • 日本做爰动漫网站/app开发费用一览表
  • 网站开发服务费合同范本/黄冈seo
  • 手机网站建设公司热线电话/查询网站收录
  • 衡量网站质量的标准/大数据营销
  • 网站建设的销售渠道/淘宝搜索关键词技巧
  • 爱爱做网站/seo查询工具