华为OD试题六(数据最节约的备份方法、TLV解码)

news/2024/7/20 18:38:14 标签: 华为od, TLV解码, 数据节约备份, python

1. 数据最节约的备份方法

题目描述:
有若干个文件,使用刻录光盘的方式进行备份,假设每张光盘的容量是500MB,求
使用光盘最少的文件分布方式
所有文件的大小都是整数的MB,且不超过500MB;文件不能分割、分卷打包
输入描述:
一组文件大小的数据
输出描述:
使用光盘的数量
补充说明:
不用考虑输入数据不合法的情况;假设最多100个输入文件。
示例1
输入:100,500,300,200,400
输出:3
说明:(100,400),(200,300),(500) 3张光盘即可

示例代码:

python"># 测试数据
test_data = [100,500,300,200,400]

def fun(s):
	# 统计个数
	count = 0
	# 移动游标
	while cur < len(s):
		if s[cur] < 500 and (500 - s[cur] in s):
			for index,value in enumerate(s):
				if value == 500 - s[cur]:
					# 使用过的数据标记为 -1
					s[index] = -1
			s[cur] = -1
			# 计数
			count += 1
		elif s[cur] == 500:
			s[cur] = -1
			count += 1	
		cur += 1
	# 统计最终结果
	count = count + (len(s) - s.count(-1))
	return count
r = fun(test_data)
print(r)

2. TLV解码

在这里插入图片描述
示例代码

python"># 测试数据
s = '31'
ss = [
	'32', '01', '00', 'AE',
    '90', '02', '00', '01', '02',
    '30', '03', '00', 'AB', '32', '31',
    '31', '02', '00', '32', '33',
    '33', '01', '00', 'CC'
]

def fun(s,ss):
	cur = 0
	# 结果列表
	res = []
	while cur < len(ss):
		Tag = ss[cur]
		length_str = ss[cur + 2] + ss[cur + 1]
		length = int(length_str,10)
		if Tag == s:
			tmp = cur + 2
			for i in range(length):
				res.append(ss[tmp + i + 1])
			break
		cur += length + 2 + 1
	return ''.join(res)
r = fun(s,ss)
print(r)

http://www.niftyadmin.cn/n/5271613.html

相关文章

扫雪铲冰,绿萝护航平安出行

为保护行人出行安全&#xff0c;确保道路干净整洁&#xff0c;绿萝党员志愿者带头行动&#xff0c;号召志愿者积极参与扫雪铲冰。2023年12月16日&#xff0c;绿萝志愿服务队与拱辰集体林场携手在昊天碳中和公园开展了志愿扫雪活动。 行动是最好的融雪剂。大雪过后的道路是最为寒…

极智开发 | macwindows本地部署安装AIGC绘图工具Stable Diffusion WebUI

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文分享一下 mac&windows本地部署安装AIGC绘图工具Stable Diffusion WebUI。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0ai…

SGPIO介紹

什么是SGPIO&#xff1f; Serial General Purpose Input Output (SGPIO) is a method to serialize general purpose IO signals. SGPIO defines the communication between an initiator (e.g. a host bus adapter) and a target (e.g. a backplaneholding disk drives). The …

《数据结构、算法与应用C++语言描述》-机器调度-最长处理时间(LPT)-堆应用

机器调度 完整可编译运行代码见&#xff1a;Github::Data-Structures-Algorithms-and-Applications/_28LongestProcessingTime 问题描述 一个工厂具有 m台一模一样的机器。我们有n 个任务需要处理。设作业i的处理时间为 t i t_i ti​&#xff0c;这个时间包括把作业放入机器…

01到底应该怎么理解“平均负载”

1、如何了解系统的负载情况&#xff1f; 每次发现系统变慢时&#xff0c; 我们通常做的第⼀件事&#xff0c; 就是执⾏top或者uptime命令&#xff0c; 来了解系统的负载情况。 ⽐如像下⾯这样&#xff0c; 我在命令⾏⾥输⼊了uptime命令&#xff0c; 系统也随即给出了结果。 …

【LLM】Prompt Engineering

Prompt Engineering CoTCoT - SCToTGoT CoT: Chain-of-Thought 通过这样链式的思考&#xff0c;Model输出的结果会更准确 CoT-SC: Self-Consistency Improves Chain of Thought Reasoning in Language Models 往往&#xff0c;我们会使用Greedy decode这样的策略&#xff0c…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《计及调频能力和经济效益的储能集群多状态区间优化策略》

这个标题提到了三个关键概念&#xff1a;储能集群、调频能力和经济效益&#xff0c;以及多状态区间优化策略。下面我将为你解释每个概念的含义&#xff0c;并对整个标题进行解读。 首先&#xff0c;"储能集群"是指将多个储能系统连接在一起形成一个集群&#xff0c;…

JVM-1-运行时数据区

程序计数器&#xff08;Program Counter Register&#xff09; 是一块较小的内存空间&#xff0c;它可以看作是当前线程所执行的字节码的行号指示器。在Java虚拟机的概念模型里[1]&#xff0c;字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令&…