【华为机试真题 Python实现】2022年4季度最新机试题

news/2024/5/19 10:56:12 标签: 华为, python, 开发语言, 生产力

文章目录

  • 2022年4季度最新机试题
  • 机试必须要会的函数
    • 输入输出处理
    • for 循环
      • 通过下标访问元素
      • 直接迭代访问元素
      • 同时访问下标和元素
    • while 循环
    • 字符ASSIC码转换
    • 进制转换
    • 绝对值计算
    • 幂运算
    • 最值选取
    • 排序


2022年4季度最新机试题

最近准备华为OD社招的同学还比较多,已经有1k多的订阅,大多是没有编程经验的同学,上来一顿的搜题背题,没有去理解题目思考结题思路,导致机考时题目稍微一变化就不知道怎么做了,不过OD的机试的重复也是真的高,下面是最近整理的最新机试题,希望对你有帮助,还在更新中…

题目分值
冗余覆盖100分
优选核酸检测点100分
日志首次上报最多积分100分

机试必须要会的函数

输入输出处理

华为OD社招使用的是ACM 模式,刷惯了LeetCode的同学一时可能会不适应,ACM模式你的代码需要处理输入input输出print

python">while 1:
	try: 
	    # 输入
	    a = input().split()
	    # 输出
	    print(int(a[0]) + int(a[1]))
	except:
        break

当输入的是 4 2 3 4 5 ,每行的第一个数字表示后面有效数据的格式时,我们可以这样处理 *nums

python">n, *nums = input().split()
print(n)
print(nums)
> 4
> ['1', '2', '3', '4']

当输入的数据需要批量转换数据类型是,我们可以使用 map

python">n, *nums = list(map(int, input().split()))
print(n)
print(nums)
> 4
> [1, 2, 3, 4]

当输入的逗号分隔的数据时,我们可以使用 .split(',') 分隔

当需要接收连续n行的输入时,我们可以使用推导式连续接收输入
如:【华为机试真题 Python实现】机器人走迷宫 问题

python"># 4
# 1 2 3 4
# 2 3 4 5
# 3 4 5 6
# 4 5 6 7

n = int(input())
nums = [input().split() for i in range(n)]
print(n)
print(nums)

> 4
> [['1', '2', '3', '4'],
>  ['2', '3', '4', '5'],
>  ['3', '4', '5', '6'],
>  ['4', '5', '6', '7']]

当需要输出指定格式,可以使用
"".join() 不能拼接字符串,如果待处理数据时数值类型需要使用转化类型

python">nums = [1, 2, 3, 4]
print(",".join(map(str, nums)))
> 1,2,3,4

for 循环

当我们需要遍历一个可迭代对象(字典、列表、集合、字符串等)不需要特殊处理下标时,推荐使用for循环,可以避免访问越界问题

通过下标访问元素

python">nums = [1, 2, 3, 4]

for i in range(len(nums)):
    print(nums[i], end=" ")
> 1 2 3 4

直接迭代访问元素

python">nums = [1, 2, 3, 4]
for i in nums:
    print(i, end=" ")
> 1 2 3 4

同时访问下标和元素

python">nums = [1, 2, 3, 4]
for i, v in enumerate(nums):
    print(i, v, end=" ")
> 0 1 1 2 2 3 3 4 

while 循环

当我们遇到滑动窗口问题,需要通过左右边界动态调整窗口大小时,推荐使用while

python">nums = [1, 2, 3, 4]
i = 0
j = 1
while j < len(nums):
    print(nums[i: j])
    j += 1
> [1]
> [1, 2]
> [1, 2, 3]

字符ASSIC码转换

当遇到对字符处理的题是,比如 abcz 转为 bcda,实际是对assic值加1来处理的

python">ord('a')
> 97
ord('b')
> 98
chr(97)
> a

进制转换

如【华为机试真题 Python实现】数据分类【2022 Q1 Q2 |200分】 问题中出现的 进制转换hex() 整型转16进制数,返回字符串

函数名功能
hex10进制转16进制数
int将一个字符串或数字转换为整型
bin10进制转2进制

绝对值计算

abs() 函数返回数字的绝对值

幂运算

pow() 函数方法返回 xy(x 的 y 次方) 的值
我也可以使用 x**y 表示x 的 y 次方

最值选取

使用max获取最大值,min获取最小值

排序

当我们需要对列表、字典排序时,可以使用sorted
当需要按多种条件同时进行排序时,如【华为机试真题 Python实现】奖牌榜的排名 问题,需要根据金牌数、银牌数、铜牌数、国家名称首字母4个条件同时排序,我们可以使用lambda构建排序规则实现

python">dex_lst = sorted(temp.items(), key=lambda itm: itm[1], reverse=True)

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

相关文章

山东省知识产权贯标奖励政策汇总

济南 济南市对当年通过国家知识产权管理规范标准认证的企事业单位给予最高2万元/家资助。 历城区 对当年新通过国家知识产权管理规范标准认证的企事业单位给予最高10万元奖励。 市中区 对新认定或新引进的专利贯标企业&#xff0c;一次性最高给予5万元扶持资金。 槐荫区 …

Unity控制物体显示与隐藏方法及优化总结

Tandre的碎碎念&#xff1a;我开始用Unity做项目接触最早的接口就是Unity的GameObject的SetActive接口&#xff0c;当时甚至只用这一个接口就解决了一个项目中所有关于显示与隐藏的问题&#xff0c;但实际上它的问题很多&#xff0c;很多时候需要尽量避免使用或避免直接使用&am…

职场中最想听到的一句话是什么?

一句话&#xff0c;可以点燃一颗心&#xff0c;也可以拯救一个人。 对于许多人来说&#xff0c;工作中最爱听到的一句话可能是“休息一下&#xff0c;你工作得很好”。这句话表明你的努力工作得到了认可&#xff0c;同时也表示你可以放松一下&#xff0c;享受一下你的成果。 …

day20【代码随想录】二叉树的前序遍历、二叉树的中序遍历、二叉树的后序遍历

文章目录前言一、二叉树的前序遍历&#xff08;力扣144&#xff09;1、递归遍历2、非递归遍历二、二叉树的中序遍历&#xff08;力扣94&#xff09;1、递归遍历2、非递归遍历三、二叉树的后序遍历&#xff08;力扣145&#xff09;1、递归遍历2、非递归遍历总结前言 1、二叉树的…

Jlink commander使用方法(附指令大全)

Jlinkcmd它可以方便用户在非仿真的情况下&#xff0c;hold内核、单步、全速、设置断点、查看内核和外设寄存器、读取flash代码等等&#xff0c;方便大家拥有最高的权限查看在运行中的MCU情况&#xff0c;查找非IDE仿真情况下&#xff0c;MCU运行异常的原因。 目录 驱动安装 …

C++初阶 stack和queue的模拟实现

作者&#xff1a;小萌新 专栏&#xff1a;C初阶 作者简介&#xff1a;大二学生 希望能和大家一起进步&#xff01; 本篇博客简介&#xff1a;模拟实现STL库中的stack和queue 考试周结束咯 狠狠的学&#xff01; stack和queue的模拟实现容器适配器Stack模拟实现接口函数一览代码…

关于云计算的 7 大误区

一直以来&#xff0c;有几个关于云计算的误区四处传播&#xff0c;散布恐惧和不必要的不信任。在使用新技术之前研究新技术并检查事实是很好的。让我们来看看关于云计算的 7 大误区&#xff0c;看看哪些是真的&#xff0c;哪些不是。 1.云迁移可能很麻烦 云迁移包括许多过程&am…

liunx常用命令 适用了centos stream9

最近刚好需要重新再学习一下Linux然后开始学习大数据&#xff0c;就重新再温习一下Linux&#xff0c;然后需要把个人所有的编程环境和数据库变成linux版本&#xff0c;虽然一直以来都是用win系统做数据&#xff0c;但是liunx系统的安全和快速最近试了一下确实令我着迷。 liunx常…