华为OD试题一(磁盘容量排序、数大雁、计算疫情扩散时间)

1. 磁盘容量排序

题目描述:磁盘的容量单位常用的有M,G,T这三个等级,它们之间的换算关系为1T = 1024G,1G = 1024M,现在给定n块磁盘的容量,请对它们按从小到大的顺序进行稳定排序,例如给定5块盘的容量,1T,20M,3G,10G6T,3M12G9M排序	后的结果为20M,3G,3M12G9M,1T,10G6T。注意单位可以重复出现,上述3M12G9M表示的容量即为3M+12G+9M,和12M12G相等。

参考代码:

# 测试数据
test_data = ['2G4M','3M2G','1T']
# 核心是将其划归为统一的单位M
# 单位字典
unit_dict = {'T':1024 * 1024,'G':1024,'M':1,
}
# 换算后的结果
conversion_data = []
# 换算后的结果与原结果对应关系
conversion_dict = {}# 该函数用于换算结果
def fun(ELE):# 用于存放结果count = 0# 辅助指针 cur = 0 for index,ele in enumerate(ELE):if ele in ['T','G','M']:count += int(ELE[cur:int(index)]) * unit_dict[ele]# cur 指向下一个要换算的结果cur = index + 1return count # 处理测试数据
for ele in test_data:res = fun(ele)# 添加换算后的数据conversion_data.append(res)# 建立换算后的数据和源数据之间的关系conversion_dict[ele] = res# 处理的数据排序
conversion_data.sort()# 存放最终结果
result = []# 将处理后的数据转化成原数据
for _ in conversion_data:for k,v in conversion_dict.items():if _ == v:result.append(k)conversion_dict.pop(k)break
# 打印最终结果
print(result)

2. 数大雁

题目描述:
一群大雁往南飞,给定一个字符串记录地面上的游客听到的大雁叫声,请给出叫
声最少由几只大雁发出。具体的:
1. 大雁发出的完整叫声为"quack",因为有多只大雁同一时间嘎嘎作响,所以字符串中可能会混合多个 "quack"。
2. 大雁会依次完整发出 "quack",即字符串中‘q’, ’u’, ’a’, ’c’, ’k’ 这 5个字母按顺序完整存在才能计数为一只大雁。如果不完整或者没有按顺序则不予计数。
3. 如果字符串不是由‘q’, ’u’, ’a’, ’c’, ’k’字符组合而成,或者没有找到一只大雁,请返回 -1。核心:同过q 和 k 的位置确定大雁数量

# 测试数据
test_str1 = "quackquack"
test_str2 = "quqackuack"
test_str3 = "quackquook"std_str = "quack"def fun(temp):# 统计大雁个数count = 0# 判断非法情况for _ in temp:if _ not in std_str:return -1# 查找q的位置q_pos = []for pos,value in enumerate(temp):if value == 'q':q_pos.append(pos)# 查找k的位置k_pos = []for _ in q_pos:before = _for s in std_str:after = temp.find(s,before)# 如果没找到if after == -1:breakif s == 'k':k_pos_append(after)# 通过分析q 的位置和其对应的k的位置计算大雁数量for i in range(len(q_pos)):if i == 0:count += 1else:if q_pos[i] < k_pos[i - 1]:count += 1return count 		result = fun(str1)
print(result)

3. 计算疫情扩散时间

题目描述:在一个地图中(地图由n*n个区域组成),有部分区域被感染病菌。感
染区域每天都会把周围(上下左右)的4个区域感染。
请根据给定的地图计算,多少天以后,全部区域都会被感染。
如果初始地图上所有区域全部都被感染,或者没有被感染区域,返回-1。核心:计算位置关系
input1 = [1, 0, 1, 0, 0, 0, 1, 0, 1]
input2 = [0, 0, 0, 0]
input3 = [1, 1, 1, 1, 1, 1, 1, 1, 1]
import mathdef fun(temp_list):# 全为0 的情况if all(x == 0 for x in temp_list):return -1# 全为1 的情况if all(x == 1 for x in temp_list):return -1# 正方形边长l = int(math.sqrt(len(temp_list)))# 统计天数count = 0while True:# 如果全为1 即全部感染则 退出if all(x == 1 for x in temp_list):return count# 计算 1 的位置temp_1_pos = [pos for pos,x in enumerate(temp_list) if x == 1]# 计算感染区域for i in temp_1_pos:# 上方区域if 0 <= i - l <= len(temp_list) - 1:if temp_list[i - l] == 0:temp_list[i - l] = 1# 左边区域if 0 <= i - 1 <= len(temp_list) - 1:if temp_list[i - 1] == 0:temp_list[i - 1] = 1# 右边区域if 0 <= i + 1 <= len(temp_list) - 1:if temp_list[i + 1] == 0:temp_list[i + 1] = 1# 下方区域if 0 <= i + l <= len(temp_list) - 1:if temp_list[i + l] == 0:temp_list[i + l] = 1count += 1
res = fun(input3)
print(res)

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

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

相关文章

TUP实现一对一聊天

package TCP; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; /** * 发送消息线程 */ class Send ext…

道可云元宇宙每日资讯|上海市区块链关键技术攻关专项项目立项清单公布

道可云元宇宙每日简报&#xff08;2023年12月11日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 上海市2023年度区块链关键技术攻关专项项目立项清单公布 据上海市科学技术委员会近日发布通知&#xff0c;上海市2023年度“科技创新行动计划”区块链关键技术攻关…

Appium 自动化测试 —— Appium的环境搭建与设置流程!

1、Appium 环境搭建&#xff1a; 学习 appium 最大的难处之一在于环境的安装&#xff0c;安装流程比较繁琐&#xff0c;安装的工具和步骤也较多&#xff0c;以下是基于 Windows 系统下的 Android 手机端的安装流程。就像我们在用 Selenium 进行 web 自动化测试的时候一样&…

Python键鼠控制之PyAutoGUI方法

前言 PyAutoGUI 是一个 Python 库&#xff0c;用于在桌面应用程序中自动化鼠标和键盘操作。它提供了一组简单而强大的方法&#xff0c;使得开发者可以编写脚本来模拟用户的鼠标点击、键盘输入以及屏幕截图等操作。PyAutoGUI 可以用于自动化重复性任务、测试 GUI 应用程序、创建…

如何通过3D人脸扫描设备制作一个3D超写实虚拟人?

随着虚拟技术的快速发展&#xff0c;现如今的虚拟人逐渐逼真&#xff0c;比二次元虚拟偶像更接近真人形象的3D超写实虚拟人&#xff0c;拥有着更逼真的面部表情&#xff0c;更完美地融入于虚实画面。 随着3D人脸扫描设备不断发展&#xff0c;大大降低了高难度的3D超写实虚拟人…

Django 模型操作(六)

Django通过Model操作数据库, 不管你数据库的类型是MySql或者Sqlite, Django自动帮你生成相应数据库类型的SQL语句,所以不需要关注SQL语句和类型,对数据的操作Django帮我们自动完成。只要会写Model就可以了。 django使用对象关系映射 (Object Relational Mapping, 简称ORM)框…

FPGA UltraScale GTY 全网最细讲解,aurora 8b/10b编解码,HDMI视频传输,提供vivado工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、详细设计方案设计框图视频源选择ADV7611解码芯片配置及采集动态彩条视频数据组包UltraScale GTY 全网最细解读UltraScale GTY 基本结构UltraScale GTY 参考时钟的选择和分配UltraScale GTY 发送和接收处理流程Ultr…

Datawhale聪明办法学Python(task2Getting Started)

一、课程基本结构 课程开源地址&#xff1a;课程简介 - 聪明办法学 Python 第二版 章节结构&#xff1a; Chapter 0 安装 InstallationChapter 1 启航 Getting StartedChapter 2 数据类型和操作 Data Types and OperatorsChapter 3 变量与函数 Variables and FunctionsChapte…

微积分-三角函数

三角函数 在处理微积分问题时&#xff0c;我们不可避免的会遇到三角函数。学会三角函数对于微积分是非常重要的。 基本知识 学习三角函数我们需要先学习一些基本知识。 首先要学习的是弧度的概念。弧度是一种角的度量单位&#xff0c;用于测量角的大小。它是根据角所对的弧长…

羊大师解答,羊奶的中医奇妙之处

羊奶素有“润肺之宝”之称&#xff0c;中医学认为它有着独特的作用和价值。羊奶不仅可以滋润肺部&#xff0c;还能保护肺脏免受外界侵害。在中医理论中&#xff0c;肺为人体之“金”&#xff0c;意味着肺具有极其重要的地位。正常肺气血充足&#xff0c;可以维持人体的正常生理…

Linux --绘制地图投影出现报错:无法成功下载地图背景数据

Linux --绘制地图投影出现报错&#xff1a;无法成功下载地图背景数据 主要原因是由于使用学院集群&#xff0c;该集群无法连接外网&#xff0c;在使用cartopy绘制地图投影时&#xff0c;导致无法成功加载地图背景数据解决方法也很简单&#xff0c;自己手动下载所需要的地形数据…

华清远见嵌入式学习——QT——作业4

作业要求&#xff1a; 代码运行效果图&#xff1a; 代码&#xff1a; 头文件&#xff1a; #ifndef ALARMCLOCK_H #define ALARMCLOCK_H#include <QWidget> #include <QTimerEvent> #include <QTimer> #include <QTime> #include <QTextToSpeech&g…

Github仓库远程操作——简单版

Github远程操作 github仓库简单的远程操作&#xff0c;更多复杂的功能请参考github官方文档 标题 Github远程操作添加公钥到githubGithub仓库远程操作 远程操作之前&#xff0c;先添加本地的公钥到github 添加公钥到github 创建本地ssh公私钥&#xff1a;使用powershell或者gi…

解决pytorch训练的过程中内存一直增加的问题

来自&#xff1a;解决pytorch训练的过程中内存一直增加的问题 - 知乎 pytorch训练中内存一直增加的原因(部分) 代码中存在累加loss&#xff0c;但每步的loss没加item() import torch import torch.nn as nn from collections import defaultdictif torch.cuda.is_available()…

静态HTTP应用的未来趋势与展望

随着互联网的快速发展&#xff0c;静态HTTP应用作为一种简单、快速和安全的Web应用形式&#xff0c;已经得到了广泛的应用。然而&#xff0c;随着技术的不断进步和创新&#xff0c;静态HTTP应用也在不断发展和变化。下面&#xff0c;我们就来谈谈静态HTTP应用的未来趋势和展望。…

PHP+MySQL组合开发众筹系统源码:在线支付+消息通知+完整的代码包 附带完整的搭建教程

互联网的普及和发展&#xff0c;众筹作为一种新型的融资方式&#xff0c;逐渐受到越来越多人的关注和认可。众筹系统作为实现众筹业务的核心工具&#xff0c;其开发和应用对于推动众筹行业的发展具有重要意义。罗峰来给大家分享一款基于PHPMySQL组合开发的众筹系统源码&#xf…

软件测试--selenium安装使用

安装selenium不少人使用pip命令来安装selenium&#xff0c;辛辛苦苦安装完之后&#xff0c;还是不能使用。所以我们可以是直接使用编译器&#xff0c;pycharm直接安装selenium扩展包。 file中点击settings 在Settings中点击Project Interpreter,点击加号就可以安装各种需要的扩…

SD卡无法读取怎么办?详细解决方法分享!

“我的sd卡用了很久&#xff0c;但是不知道为什么无法读取了&#xff0c;尝试了很多种方法我都无法读取到里面的数据。我有很重要的文件保存在里面&#xff0c;想问问有什么方法可以帮助我快速解决这个问题吗&#xff1f;” SD卡是一种非常常用的存储设备&#xff0c;可以用于存…

2023 巅峰之作 | AIGC、AGI、GhatGPT、人工智能大语言模型的崛起与挑战

文章目录 01 《ChatGPT 驱动软件开发》内容简介 02 《ChatGPT原理与实战》内容简介 03 《神经网络与深度学习》04 《AIGC重塑教育》内容简介 05 《通用人工智能》目  录 2023年是人工智能大语言模型大爆发的一年&#xff0c;一些概念和英文缩写也在这一年里集中出现&#xff…

leetcode-24-两两交换链表中的节点(C语言实现)

题目&#xff1a; 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4] 输出&…