首页 > 编程语言 >【华为机试真题 Python实现】2022年4、5月高频机试题

【华为机试真题 Python实现】2022年4、5月高频机试题

时间:2022-12-15 19:35:37浏览次数:45  
标签:200 进制 nums Python 真题 高频机 print input 100


文章目录

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

2022年4、5月高频机试题

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

题目

分值

​​字符串格式化输出​

100分

​​按身高和体重排队​

100分

​​拼接 URL​

100分

​​磁盘容量排序​

100分

​​分糖果​

100分

​​圆桌队列​

100分

​​计算矩形相交面积​

100分

​​We Are A Team​

100分

​​数字涂色​

100分

​​最少交换次数来组合小于k的整数​

100分

​​员工工号问题​

100分

​​补种未成活胡杨​

100分

​​敏感字段加密​

100分

​​5键键盘的输出​

100分

​​IPv4地址转换成整数​

100分

​​解密犯罪时间​

100分

​​水仙花数​

100分

​​最长的指定瑕疵度的元音子串​

200分

​​面试(最少面试官数)​

200分

​​九宫格按键输入​

200分

​​仿 LISP 运算​

200分

​​路灯问题​

200分

​​书籍叠放问题​

200分

​​导师请吃火锅​

200分

​​数据分类​

200分

​​树形目录操作​

200分

​​奥运会奖牌榜的排名​

200分

​​转骰子​

200分

​​机器人走迷宫​

200分

机试必须要会的函数

输入输出处理

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

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

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

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

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

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

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

当需要接收连续n行的输入时,我们可以使用推导式连续接收输入
如:​​【华为机试真题 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()​​ 不能拼接字符串,如果待处理数据时数值类型需要使用转化类型

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

for 循环

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

通过下标访问元素

nums = [1, 2, 3, 4]

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

直接迭代访问元素

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

同时访问下标和元素

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​

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来处理的

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

进制转换

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

函数名

功能

hex

10进制转16进制数

int

将一个字符串或数字转换为整型

bin

10进制转2进制

绝对值计算

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

幂运算

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

最值选取

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

排序

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

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


标签:200,进制,nums,Python,真题,高频机,print,input,100
From: https://blog.51cto.com/u_12768449/5945768

相关文章

  • Python - 函数实战
    一、前言参考:https://www.cnblogs.com/poloyy/p/15110297.html1、什么是模块化程序设计在进行程序设计时将一个大程序按照功能划分为若干小程序模块每个小程序模......
  • 【数据结构实践】从0到1带你利用Python实现自定义集合
    前言集合(简称集)是数学中一个基本概念,我们应该都比较熟悉,不管是生活中,还是数学上,我们都频繁地接触到。集合在数学领域具有无可比拟的特殊重要性。一定范围的,确定的,可以......
  • 【数据结构实践】手把手带你实现 Python 自定义数组
    引言无论是任何语言,数组或者类似数组的数据结构永远是计算机编程语言不可或缺的基本数据结构,有了数组的存在更有利于我们的程序对数据的存储和操作.本文将从面向对象的入手......
  • Python学习笔记--布尔类型和比较运算符、if判断语句以及相关案例的实现
    布尔类型和比较运算符代码:结果:主要有以下几类:注意:bool类型的真假表示开头必须大写,例如:True和False而要是想要得到布尔类型,除了直接定义,还可以通过比较运算得到布尔......
  • [附源码]Python计算机毕业设计Django基于vuejs的爱宠用品销售app
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • Python_帮助系统和自查自学命令
    pythonPython类中,凡是以双下划线"__"开头和结尾命名的成员(属性和方法),都被称为类的特殊成员(特殊属性和特殊方法)。例如,类的init(self)构造方法就是典型的特殊方法库......
  • Python控制语句
    1.控制语句1.1.判断语句if...elif...else#if语句(比较/逻辑/成员均可)#字符串/列表/元组/字典为空返回False,非空返回True#条件成立返回True,不成立返回Falsear......
  • Python super() 详解 最简单的解释
    首先提一下,经典类和新式类。在Python2中,如果定义类的方式是classMyClass:那么该类叫做经典类,如果定义类的方式为classMyClass(object):那么该类为新式类。在Python3中......
  • python使用遍历文件夹文件
    python使用遍历文件夹文件一,遍历函数os.walk(rootdir):#返回三个参数:分别返回1.父目录2.所有文件夹名字(不含路径)3.所有文件名字二,使用importosimportos.pa......
  • 【Python多任务--进程,协程】
    一、进程进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。进程是线程的容器,一个进程可以有多个线程进程特......