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

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

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

示例代码:

# 测试数据
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]:# 使用过的数据标记为 -1s[index] = -1s[cur] = -1# 计数count += 1elif s[cur] == 500:s[cur] = -1count += 1	cur += 1# 统计最终结果count = count + (len(s) - s.count(-1))return count
r = fun(test_data)
print(r)

2. TLV解码

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

# 测试数据
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 + 2for i in range(length):res.append(ss[tmp + i + 1])breakcur += length + 2 + 1return ''.join(res)
r = fun(s,ss)
print(r)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/223053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos-LAMP搭建与配置(论坛网站)

文章目录 LAMP简介搭建LAMP环境安装apache&#xff08;httpd&#xff09;安装mysql安装PHP安装php-mysql安装phpwind LAMP简介 LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写&#xff1a;Linux操作系统&#xff0c;网页服务器Apache&#xff0c;…

【知识分享】Java实现排序的方法及代码实现

Java实现排序的基础方法有很多&#xff0c;下面介绍几种比较常见的排序算法及其代码实现。 1.冒泡排序 冒泡排序是一种基础的排序算法&#xff0c;其思想是依次比较相邻的两个元素&#xff0c;如果顺序不对则交换它们的位置&#xff0c;直到整个数组都排好序为止。 代码实现…

工作遇到问题与解决办法(二)

弹出确认框 this.$confirm(确定删除全部添加的数据吗?, 提示, {confirmButtonText: 确定,cancelButtonText: 取消,type: warning}).then(() > {// 确定操作this.addYpslTempList[];this.isSelectfalse;//删除状态this.addMultiple true;this.$message({type: success,mes…

MySQL InnoDB存储引擎中的索引结构解析

目录 常见的几种数据结构1、二叉树2、红黑树3、B树4、B树5、总结 索引结构1、聚簇索引和非聚簇索引2、Hash索引3、总结 常见的几种数据结构 1、二叉树 特点&#xff1a; 每个节点最多有两个子节点&#xff0c;分别称为左子节点和右子节点。通常不是自平衡的&#xff0c;可能…

漫谈:exception比goto强在哪?还不如if else呢!

最近对异常处理比较气愤。因为引发了一些BUG…… “异常处理不是用来避免BUG的吗&#xff1f;”&#xff0c;他们这样说的&#xff0c;但是异常处理确实引发了BUG。 目录 如果代码需要优雅&#xff0c;你为什么不去跳芭蕾&#xff1f; 看看下面的代码&#xff1a; try{Stream…

Mac中nvm切换node版本失败

Mac中使用 nvm 管理 node 版本&#xff0c;在使用指令&#xff1a;nvm use XXX 切换版本之后。 关闭终端&#xff0c;再次打开&#xff0c;输入 node -v 还是得到之前的 node 版本。 原因&#xff1a; 在这里这个 default 中有个 node 的版本号&#xff0c;使用 nvm use 时&a…

spring boot 实现直播聊天室(二)

spring boot 实现直播聊天室(二) 技术方案: spring bootnettyrabbitmq 目录结构 引入依赖 <dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>4.1.96.Final</version> </dependency>Si…

芯知识 | 什么是OTP语音芯片?唯创知音WTN6xxx系列:低成本智能语音解决方案

什么是OTP语音芯片&#xff1f; OTP&#xff0c;即一次性可编程&#xff08;One-Time Programmable&#xff09;&#xff0c;语音芯片是一类具有独特编程特性的嵌入式语音存储解决方案。与可重复擦写&#xff08;Flash型&#xff09;语音芯片不同&#xff0c;OTP语音芯片一经烧…

安装DevEco Studio

下载 首先进入鸿蒙开发者官网&#xff0c;顶部导航栏选择开发->DevEco Studio 根据操作系统下载不同版本&#xff0c;其中Mac(X86)为英特尔芯片&#xff0c;Mac(ARM)为M芯片。 安装 下载完毕后&#xff0c;开始安装。 点击Agree 首次使用&#xff0c;请选择Do not impor…

Vue 详细教程

Vue实战 1. Vue 引言 渐进式 JavaScript 框架 --摘自官网 官网地址&#xff1a;Vue.js - 渐进式 JavaScript 框架 | Vue.js # 渐进式 1. 易用 html css javascript 2. 高效 开发前端页面 非常高效 3. 灵活 开发灵活 多样性 # 总结 Vue 是一个javascript 框架 js 简化页面js操作…

Pr自动从视频脚本剪辑视频FirstCut插件免费下载

FirstCut 插件将自动从视频脚本中剪辑视频&#xff0c;在例如新闻、采访、自媒体视频等带有配音或字幕内容的视频制作中提高了粗剪效率。 使用 FirstCut&#xff0c;大大缩短了粗剪的时间&#xff0c;而不是转到每个视频文件并找到 IN 点和 OUT 点&#xff0c;然后将其插入到序…

jmeter,读取CSV文件数据的循环控制

1、构造csv数据 保存文件时需要注意文件的编码格式 id,name,limit,status,address,start_time 100,小米100,1000,1,某某会展中心101,2023/8/20 14:20 101,小米101,1001,1,某某会展中心102,2023/8/21 14:20 2、在线程组下添加【CSV数据文件设置】元件 3、CSV文件数据的循环控…

数据库动态视图和存储过程报表数据管理功能设计

需求&#xff1a;需要将ERP的报表数据挪到OA中&#xff0c;但是OA表单设计不支持存储过程动态传参&#xff0c;所以需要设计一个系统&#xff0c;可以手动配置&#xff0c;动态显示原本ERP的报表数据&#xff0c;ERP报表是存在数据库的视图和存储过程中 思路&#xff1a;因为E…

c#按照时间进行数据存储(不用数据库)

概要介绍 按照日期生成文件夹&#xff0c;按照时间生成文件名&#xff0c;存储字符串。 可以用于简单数据记录&#xff08;如果数据存储考虑格式文本&#xff0c;保存为csv格式&#xff09; 实现效果 调用方法 SaveText.saveStr("测试字符串"DateTime.Now.ToStrin…

恒创科技:有哪些免费的CDN加速服务

CDN加速技术已经成为提升网站性能和用户体验的重要手段之一。许多网站都使用CDN来加速内容传输&#xff0c;提高网站的响应速度和可用性。然而&#xff0c;对于许多小型企业和个人网站来说&#xff0c;使用CDN服务需要支付一定的费用。那么&#xff0c;有没有免费的CDN加速服务…

高效排队,紧急响应:RabbitMQ Priority Queue全面指南【RabbitMQ 九】

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 高效排队&#xff0c;紧急响应&#xff1a;RabbitMQ Priority Queue全面指南 引言前言第一&#xff1a;初识RabbitMQ Priority Queue插件插件的背景和目的&#xff1a;为什么需要消息优先级&#xff1…

我的NPI项目之Android 安全系列 -- Google Wallet and Secure Element(SE)

随着电子支付的兴起&#xff0c;越来越多的支付方式出现在我们的生活中。其中就有基于NFC的“碰一碰”的支付&#xff0c;支付宝的“扫一扫”支付&#xff0c;我们还知道有Google Pay(Wallet), Apple Pay(Wallet)。作为Android BSP的开发者&#xff0c;我比较关心的是Google Pa…

AI助力DevOps新时代

根据2023年Gitlab全球DevSecOps报告&#xff0c;62%使用AI和ML的开发人员表示他们正在使用AI来检查代码&#xff0c;而2022年这一比例只有51%。 人工智能在 DevOps 中的作用 虽然今年年初&#xff0c;随着GPT的爆火&#xff0c;AI技术逐渐深入人心&#xff0c;但在很早以前&…

maven常用命令

Maven (mvn) 是一个用于构建和管理 Java 项目的强大工具。以下是一些常见的 Maven 命令&#xff1a; mvn clean: 清理项目&#xff0c;删除 target 目录及其内容。 mvn compile: 编译项目源代码。 mvn test: 运行项目的单元测试。 mvn package: 打包项目&#xff0c;生成 J…

洛谷题单【算法1-7】搜索

P1135 奇怪的电梯 一开始以为深搜肯定没问题&#xff0c;从a点出发&#xff0c;衍生出一个二叉树&#xff0c;遍历所有情况就好了&#xff0c;但是会重复&#xff0c;所以加了一个vis防止重复&#xff0c;但是只拿了64pts&#xff0c;因为有可能某个点并不是最短被到达的&…