
华为OD机试(Python)真题(A卷+B卷+C卷+D卷)
每日更新真题,希望各位面试的小伙伴顺利拿到offer。
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
codereasy
这个作者很懒,什么都没留下…
展开
-
华为OD机试 Python 【找朋友】
在学校中,N 个小朋友站成一队, 第 i 个小朋友的身高为height[i],第 i 个小朋友可以看到的第一个比自己身高更高的小朋友 j ,那么 j 是 i 的好朋友(要求j > i)。请输出一个数组,对应位置的输出是每个小朋友的好朋友位置,如果没有看到好朋友,则输出0。原创 2024-02-10 23:22:05 · 2309 阅读 · 0 评论 -
2024华为OD机试真题【计算数组中心位置】【 Python】
给你一个整数数组nums,请计算数组的中心位置。数组的中心位置是数组的一个下标, 其左侧所有元素相乘的积等于右侧所有元素相乘的积。数组第一个元素的左侧积为1,最后一个元素的右侧积为1。如果数组有多个中心位置,应该返回最靠近左边的那一个,如果数组不存在中心位置,返回-1。初始化完成后,开始遍历数组,从左到右的顺序遍历。对于当前位置 i,首先更新左侧积(如果 i 不是第一个元素,那么左侧积为。遍历整个数组,在遍历的过程中,计算当前元素。左侧积:该元素左侧所有元素的乘积;右侧积:该元素右侧所有元素的乘积;原创 2023-12-22 18:44:54 · 4148 阅读 · 1 评论 -
华为od机考 Python 目录【E卷+A卷+B卷+C卷+D卷】
1:进入机考网页之后如果链接上写着【B卷】,就表示是B卷题库(**对应着目录中的时间这一列 2023Q2**)。在之后,大多数同学收到的应该是B卷题库。2:2022年的题库,如果时间紧迫,建议直接刷2023年新题。3:如果机试挂了,6个月之后可以再考。4:订阅专栏后,后面更新的答案都可以查看。以后更新的题目也会放到这个专栏里。5:如果对题解有问题,私信我解答。原创 2023-08-26 23:04:50 · 20080 阅读 · 0 评论 -
华为OD机试 Python【词汇匹配与统计】
首先读取需要分词的句子和词库,并将句子按照标点符号分割成多个独立句子,将词库中的词汇存入HashSet中以便快速查找。然后依次处理每个句子,对于每个句子,从长到短截取子串,优先匹配最长的词汇。第二行输入中文词库 “i,love,china,ch,na,ve,lo,this,is,this,word”,词库长度限制:1 < length < 100000。给定一个连续不包含空格的字符串,该字符串仅包含英文小写字母及英文标点符号(逗号、分号、句号),同时给定词库,对该字符串进行精确分词。原创 2025-04-01 08:33:29 · 5 阅读 · 0 评论 -
华为OD机试 Python【计算合法时间】
警察在侦破一个案件时,得到了线人给出的可能犯罪时间,形如 “HH:MM” 表示的时刻。根据警察和线人的约定,为了隐蔽,该时间是修改过的,解密规则为:利用当前出现过的数字,构造下一个距离当前时间最近的时刻,则该时间为可能的犯罪时间。每个出现数字都可以被无限次使用。例如,“01:35”和“11:08”是合法的,“1:35”和“11:8”是不合法的。形如HH:SS的字符串,表示推理处理的犯罪时间。1.可以保证现任给定的字符串一定是合法的。形如HH:SS字符串,表示原始输入。2.最近的时刻可能在第二天。原创 2025-03-27 08:37:53 · 16 阅读 · 0 评论 -
华为OD机试 Python【输入法联想】
首先从输入的语句中提取所有英文单词并去除标点符号,然后检查这些单词中哪些是以给定前缀开头的。如果没有找到匹配的单词,则输出前缀;否则按空格分隔输出匹配的单词序列。依据用户输入的单词前缀,从已输入的英文语句中联想出用户想输入的单词,按字典序输出联想到的单词序列,如果联想不到,请输出用户输入的单词前缀。3、输出的单词序列,不能有重复单词,且只能是英文单词,不能有标点符号。输出符合要求的单词序列或单词前缀,存在多个时,单词之间以单个空格分割。2、缩略形式如”don’t”,判定为两个单词,”don”和”t”原创 2025-03-26 08:32:43 · 11 阅读 · 0 评论 -
华为OD机试 Python【承运最大利润】
使用双重循环枚举货物 A 和货物 B 的数量组合,计算每种组合的总重量和总利润。当组合的总重量恰好等于货车的额定载重时,记录该组合的总利润,并不断更新最高利润值。老李每次发车时载货总重量刚好为货车额定的载货重量 wt,车上必须同时有货物 A 和货物 B ,货物A、B不可切割。第四列输入为货物 A 的单件运费利润 pa,0 < pa < 1000。第五列输入为货物 B 的单件运费利润 pb,0 < pb < 1000。第二列输入为货物 B 的单件重量 wb,0 < wb < 10000。原创 2025-03-24 08:33:13 · 18 阅读 · 0 评论 -
华为OD机试 Python【最佳出牌策略】
有这么一款单人卡牌游戏,牌面由颜色和数字组成,颜色为红、黄、蓝、绿中的一种,数字为0-9中的一个。游戏开始时玩家从手牌中选取一张卡牌打出,接下来如果玩家手中有和他上一次打出的手牌颜色或者数字相同的手牌,他可以继续将该手牌打出,直至手牌打光或者没有符合条件可以继续打出的手牌。如此循环通过这种方式,可以遍历所有可能的出牌序列,并找到打出最多手牌的最优策略。第二行为对应的每张手牌的颜色,用r y b g这4个字母分别代表4种颜色,字母也由空格分隔。现给定一副手牌,请找到最优的出牌策略,使打出的手牌最多。原创 2025-03-21 08:32:22 · 23 阅读 · 0 评论 -
华为OD机试 Python【人力资源安排】
输入为 M 和 requirements,M 表示需求开发时间要求,requirements 表示每个需求工作量大小,N 为 requirements长度,当前部门需要完成 N 个需求,需求用 requirements 表述,requirements[i] 表示第 i 个需求的工作量大小,单位:人月。目前要求每个月最多有2个需求开发,并且每个月需要完成的需求不能超过部门人力。这部分需求需要在 M 个月内完成开发,进行人力安排后每个月人力时固定的。对于每一组测试数据,输出部门需要人力需求,行末无多余的空格。原创 2025-03-19 08:36:14 · 19 阅读 · 0 评论 -
华为OD机试 Python【CSV 替换单元格】
在进行引用替换时,通过递归替换引用直至没有引用为止,过程中如果发现无效引用则抛出异常并输出-1。最终将所有处理后的单元格拼接成一行输出。6、不存在多重 ‘<>’ 的情况,一个单元只能引用一个其他单元格。将一个 csv 格式的数据文件中包含有单元格引用的内容替换为对应单元格内容的实际值。2、每个单元格的内容包含字母和数字,以及使用 ‘<>’ 分隔的单元格引用,例如:<4、引用单元格的位置不受限制,允许排在后面的单元格被排在前面的单元格引用。3、每个单元格的内容,在替换前和替换后均不超过100个字符。原创 2025-03-11 08:32:34 · 34 阅读 · 0 评论 -
华为OD机试 Python【分数表达式求值】
将输入的表达式分割成数字、运算符和括号;然后将中缀表达式转换为后缀表达式,转化完成之后,使用栈计算后缀表达式的值,通过分数类处理四则运算并化简,得到最简分数形式。字符串格式的表达式,仅支持±*/,数字可能超过两位,可能带有空格,没有负数。用例输入一定合法,不会出现括号匹配的情况。给定一个表达式,求其分数计算结果。表达式结果,以最简格式表达。长度小于200个字符。原创 2025-03-10 08:31:26 · 20 阅读 · 0 评论 -
华为OD机试 Python【香蕉最大数量】
使用双指针,一个指向数组的开头,一个指向末尾,维护一个窗口,窗口大小为N。计算从开头获取i个香蕉和从末尾获取N-i个香蕉的总和,利用前缀和数组求和,遍历所有可能的组合,找出能够获取香蕉的最大值。一只贪吃的猴子,来到一个果园,发现许多串香蕉排成一行,每串香蕉上有若干根香蕉。每串香蕉的根数由数组numbers给出。猴子获取香蕉,每次都只能从行的开头或者末尾获取,并且只能获取N次,求猴子最多能获取多少根香蕉。第二行为数组numbers的值每个数字通过空格分开。第三行输入为N,表示获取的次数。原创 2025-03-07 08:32:02 · 19 阅读 · 0 评论 -
华为OD机试真题【胡杨树种植】(Python)
近些年来,我国防沙治沙取得显著成果。某沙漠新种植N棵胡杨(编号1-N),排成一排。一个月后,有M棵胡杨未能成活。现可补种胡杨K棵,请问如何补种(只能补种,不能新种),可以得到最多的连续胡杨树?输入描述N 总种植数量M 未成活胡杨数量M 个空格分隔的数,按编号从小到大排列K 最多可以补种的数量其中:1 <= N <= 1000001 <= M <= N0 <= K <= M输出描述最多的连续胡杨棵树示例1输入输出示例仅供调试,后台判题数据一般不包含示例输入522 41输出3说明补种到2或4结果一样,最多原创 2025-03-03 08:31:23 · 30 阅读 · 0 评论 -
华为OD机试 Python【选择最优参观路径】
创建一个二维数组 dp 来记录到达每个位置的路径数,初始化起点的路径数为1。对于每个可以参观的位置,路径数等于从上方和左方到达的路径数之和。通过逐行逐列地填充 dp 数组,最终在终点位置获得从起点到终点的所有不同路径数量。家属参观园区时,只能向右和向下园区前进,求从起始园区到终点园区会有多少条不同的参观路径。将公司园区视为一个矩形,起始园区设置在左上角,终点园区设置在右下角;后面每一行表示该园区是否可以参观,0表示可以参观,1表示不能参观。园区某部门举办了Family Day,邀请员工及其家属参加;原创 2025-02-19 08:33:58 · 29 阅读 · 0 评论 -
华为OD机试 Python【文件缓存系统】
通过存储文件信息和管理缓存空间,优先删除访问次数最少且访问时间最早的文件来腾出空间。文件访问过后,会更新文件的最近访问时间和总的访问次数,当缓存不够时,按照第一优先顺序为访问次数从少到多,第二顺序为时间从老到新的方式来删除文件。当缓存空间不足以存放新的文件时,根据规则删除文件,直到剩余空间满足新的文件大小位置,再存放新文件。请设计一个文件缓存系统,该文件缓存系统可以指定缓存的最大值(单位为字节)。读取文件是从文件缓存系统中访问已存在,如果文件不存在,则不作任何操作。存储文件是把文件放入文件缓存系统中;原创 2025-02-18 08:33:51 · 313 阅读 · 0 评论 -
华为OD机试 Python【员工结对编程】
从部门中选出序号分别为 i、j、k 的3名员工,他们的职级分贝为 level[i],level[j],level[k],结队小组满足 level[i] < level[j] < level[k] 或者 level[i] > level[j] > level[k],其中 0 ≤ i < j < k < n。遍历每个中间的员工,并统计在其左边比它职级低和职级高的员工数量,以及在其右边比它职级低和职级高的员工数量。第二行输入:按序号依次排列的员工的职级 level,中间用空格隔开。第一行输入:员工总数 n。原创 2025-02-17 08:33:14 · 23 阅读 · 0 评论 -
华为OD机试 Python【最多香蕉数量】
使用双指针,一个指向数组的开头,一个指向末尾,维护一个窗口,窗口大小为N。计算从开头获取i个香蕉和从末尾获取N-i个香蕉的总和,利用前缀和数组求和,遍历所有可能的组合,找出能够获取香蕉的最大值。一只贪吃的猴子,来到一个果园,发现许多串香蕉排成一行,每串香蕉上有若干根香蕉。每串香蕉的根数由数组numbers给出。猴子获取香蕉,每次都只能从行的开头或者末尾获取,并且只能获取N次,求猴子最多能获取多少根香蕉。第二行为数组numbers的值每个数字通过空格分开。第三行输入为N,表示获取的次数。原创 2025-02-14 08:35:50 · 20 阅读 · 0 评论 -
华为OD机试 - 发动机启动顺序(Python)
如果在时刻 1 一个发动机被启动,下一个时刻 2 与之相邻的两个发动机就会被“关联启动”时刻1启动(1,3,5,7)(其中1,3被2关联启动,5,7被6关联启动);E 代表计划手动启动的发动机总个数,1 ≤ E ≤ 1000,E ≤ N。时刻2启动(0,4)(其中0被1,7关联启动,4被3,5关联启动);至此所有发动机都被启动,最后被启动的有2个,分别是0和4。如果准备启动某个发动机时,它已经被启动了,则什么都不用做。T 代表发动机的手动启动时刻,0 ≤ T ≤ N。N 代表最后被启动的发动机个数。原创 2025-02-13 08:33:11 · 19 阅读 · 0 评论 -
华为od机试 - VLAN资源池 (Python)
然后读取要申请的 VLAN,并从集合中移除它(如果存在)。定义一个 VLAN ID 的资源池(下称VLAN资源池),资源池中连续的VLAN用 开始VLAN-结束VLAN 表示,不连续的用单个整数表示,所有的VLAN用英文逗号连接起来。从输入VLAN资源池中移除申请的VLAN后字符串格式的VLAN资源池,输出要求满足题目描述中的格式,并且按照VLAN从小到大升序输出。现在有一个VLAN资源池,业务需要从资源池中申请一个VLAN,需要你输出从VLAN资源池中移除申请的VLAN后的资源池。原创 2025-02-08 15:30:34 · 31 阅读 · 0 评论 -
华为OD机试真题---We Are A Team (Python)
处理指令时,如果 c == 0,则合并 a 和 b 的团队,如果 c == 1,则判断两者是否属于同一团队并输出结果,否则输出 “da pian zi” 代表非法指令。c == 1 代表需要判定 a 和 b 的关系,如果 a 和 b 是一个团队,输出一行’we are a team’,如果不是,输出一行’we are not a team’c ==1,根据 a 和 b 是否在一个团队中输出一行字符串,在一个团队中输出‘we are a team‘,不在一个团队中输出’we are not a team’原创 2025-02-11 08:00:00 · 22 阅读 · 0 评论 -
华为OD机试 - 工号不够用了怎么办 / 数学推理 (Python)
根据题意,工号由Y个字母开头,每个字母有 26 种选择,接着是Z个数字,每个数字有 10 种选择,工号总数 = 字母部分的组合数 × 数字部分的组合数。但是过长的工号会增加同事们的记忆成本,现在给出新工号至少需要分配的人数X和新工号中字母的长度Y,求新工号中数字的最短长度Z。新工号由一段英文字母开头,之后跟随一段数字,比如”aaahw0001″,”a12345″,”abcd1″,”a00″。继承历史传统,新的工号系统由小写英文字母(a-z)和数字(0-9)两部分构成。输出新工号中数字的最短长度Z。原创 2025-02-10 08:00:00 · 17 阅读 · 0 评论 -
华为OD机试 Python【分解因数】
RSA加密算法在网络安全世界中无处不在,它利用了极大整数因数分解的困难度,数据越大,安全系数越高,给定一个 32 位正整数,请对其进行因数分解,找出是哪两个素数的乘积。,则输出这两个素数;如果遍历完所有可能的因数后未找到符合条件的素数对,则输出“-1 -1”。如果成功找到,以单个空格分割,从小到大输出两个素数,分解失败,请输出-1, -1。一个正整数 num 0 < num < 2147483647。解题思路是首先读取输入的32位正整数。原创 2025-02-08 08:33:12 · 16 阅读 · 0 评论 -
华为OD机试 Python【小朋友的身高】
首先读取小明的身高和其他小朋友的身高,然后将其他小朋友的身高存储在数组中。对数组进行排序,排序规则是先按与小明身高差的绝对值从小到大排序,如果绝对值相同,则按身高从小到大排序。小明今年升学到了小学1年级来到新班级后,发现其他小朋友身高参差不齐,然后就想基于各小朋友和自己的身高差,对他们进行排序,请帮他实现排序。第二行为n个正整数,h1 ~ hn分别是其他小朋友的身高,取值范围0<hi<200,且n个正整数各不相同。第一行为正整数 h和n,0<h<200 为小明的身高,0<n<50 为新班级其他小朋友个数。原创 2025-01-22 08:32:13 · 27 阅读 · 0 评论 -
华为OD机试 Python【寻找小朋友的好朋友】
利用单调栈来找到数组中每个元素右侧第一个比它大的元素的索引。对于每个元素,如果栈顶元素小于当前元素,则更新栈顶元素在结果数组中的索引值,并弹出栈顶元素。重复此过程,直到栈顶元素不小于当前元素,然后将当前元素及其索引入栈。在学校中,N个小朋友站成一队, 第i个小朋友的身高为height[i],第i个小朋友可以看到的第一个比自己身高更高的小朋友j,那么j是i的好朋友(要求j > i)。请重新生成一个列表,对应位置的输出是每个小朋友的好朋友位置,如果没有看到好朋友,请在该位置用0代替。原创 2025-01-20 08:32:59 · 19 阅读 · 0 评论 -
华为OD机试 Python【团队的派出数量】
用数组代表每个人的能力,一个比赛活动要求参赛团队的最低能力值为N,每个团队可以由1人或者2人组成,且1个人只能参加1个团队,计算出最多可以派出多少只符合要求的团队。4、如果组合后的能力值满足要求,则形成一个团队,并移动两个指针;否则,仅移动右指针尝试找到更大的数与当前左指针的数进行组合。2、初始化两个指针,一个指向数组的开头(左指针),一个指向数组的末尾(右指针)。3、从两端向中间扫描数组,尝试将左指针和右指针指向的元素组合成团队。第三行数值为团队要求的最低能力值,范围1-500000。原创 2025-01-16 08:28:45 · 22 阅读 · 0 评论 -
华为OD机试 Python【图像的绘制面积】
首行为两个整数 N 和 E,表示有N条指令,机器运行的横坐标终点值E,接下来N行 每行两个整数表示一条绘制指令x offsetY,用例保证横坐标x以递增排序的方式出现且不会出现相同横坐标x。绘图机器的绘图笔初始位置在原点(0,0)机器启动后按照以下规则来进行绘制直线。一个整数表示计算得到的面积 用例保证结果范围在0到4294967295之内。原创 2025-01-13 08:03:31 · 25 阅读 · 0 评论 -
华为OD机试 Python【停车场最少车辆统计】
特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位(长度3)。整型字符串数组cars[],其中1表示有车,0表示没车,数组长度小于1000。统计停车场最少可以停多少辆车,返回具体的数目。1、初始化计数器count为0,索引i为0。3、跳过所有空位(0),继续上述检查。4、遍历完成后,返回计数器count。整型数字字符串,表示最少停车数目。原创 2025-01-09 08:33:20 · 33 阅读 · 0 评论 -
华为OD机试 Python【连续区间的和】
通过两个指针left和right表示当前窗口的左右边界,并使用currentSum记录窗口内的和。每当找到一个满足条件的窗口时,计算从当前左边界到数组末尾的所有满足条件的区间数,然后移动左边界缩小窗口,并重复上述过程,直到遍历完整个数组。给定一个含有N个正整数的数组, 求出有多少个连续区间(包括单个正整数), 它们的和大于等于x。第一行两个整数N x(0 < N <= 100000, 0 <= x <= 10000000)注意:此题对效率有要求,暴力解法通过率不高,请考虑高效的实现方式。原创 2025-01-07 08:33:44 · 28 阅读 · 0 评论 -
华为OD机试 Python【吃蟠桃的速度】
孙悟空可以决定他吃蟠桃的速度K(个/小时),每个小时选一颗桃树,并从树上吃掉 K 个,如果树上的桃子少于 K 个,则全部吃掉,并且这一小时剩余的时间里不再吃桃。否则,需要增大速度。1、定义搜索范围:吃蟠桃的速度K至少为1(每小时吃一个桃子),最大为最大桃树上的桃子数量(即一次性吃完一颗树上的所有桃子)。其中数字通过空格分割,N、H为正整数,每颗树上都有蟠桃,且 0 < N < 10000,0 < H < 10000。我们的目标是找到一个最小的吃蟠桃的速度K,使得孙悟空能够在H小时内吃完所有蟠桃。原创 2025-01-03 08:34:54 · 35 阅读 · 0 评论 -
华为OD机试 Python【山的高度】
例如:[0,1,2,4,3,1,0,0,1,2,3,1,2,1,0],代表如下图所示的地图,地图中有两个山脉位置分别为 1,2,3,4,5 和 8,9,10,11,12,13,最高峰高度分别为 4,3。用户输入一个表示地图高度的整型数组。然后遍历该数组,检查每个位置是否比其相邻的两个位置都高,如果是,则将其计数为一个山峰。地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。一个山脉可能有多座山峰(高度大于相邻位置的高度,或在地图边界且高度大于相邻的高度)。输出地图中山峰的数量。原创 2024-12-30 08:33:30 · 23 阅读 · 0 评论 -
华为OD机试 Python【数的分解】
当输入为1时,无法分解,直接输出"N";对于奇数n,直接分解为n/2和n/2+1;对于偶数n,找到其最大奇因数x,然后判断连续正整数数列的长度是奇数还是偶数:如果长度是偶数,则最短长度为n/x*2,起始数为x/2-(长度/2-1);如果长度是奇数,则调用函数 findMinOddSequenceLength() 求出最短奇数长度,然后计算起始数。给定一个正整数 n,如果能够分解为 m(m > 1)个连续正整数之和,请输出所有分解中,m最小的分解。如果给定整数无法分解为连续正整数,则输出字符串"N"。原创 2024-12-27 08:33:28 · 52 阅读 · 0 评论 -
华为OD机试 Python【连续字符串】
首先遍历输入字符串,计算每个字符连续出现的次数并记录下来,然后将这些连续出现次数按照从大到小排序,最后返回第k大的连续出现次数。给定一个字符串,只包含大写字母,求在包含同一字母的子串中,长度第 k 长的子串的长度,相同字母只取最长的那个子串。第一行有一个子串(1<长度<=100),只包含大写字母。输出连续出现次数第k多的字母的次数。原创 2024-12-25 08:33:41 · 32 阅读 · 0 评论 -
华为OD机试 Python【筛选并排序字符串】
然后根据k的值,找到第k个最小的字符(如果k大于字符长度则找到最大的字符)。输出该字母所在字符串中的位置索引(字符串的第一个位置索引为0),k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引,如果有重复字母则输出字母的最小位置索引。输入一个由N个大小写字母组成的字符,按照ASCII码值从小到大进行排序,查找字符串中第K个最小ASCII码值的字母(k>=1)输出字符串中第k个最小ASCII码值的字母所在字符串的位置索引。第二行输入k ,k必须大于0 ,k可以大于输入字符串的长度。原创 2024-12-24 08:34:41 · 37 阅读 · 0 评论 -
华为OD机试 Python【最长疵度度的子串】
先通过遍历字符串提取所有元音字符的索引,然后使用双指针滑动窗口方法在这些索引间寻找符合条件的子串。滑动窗口的左右指针表示子串的起始和结束位置,通过计算两个元音字符之间的非元音字符数量(瑕疵度)来判断是否满足条件。最终输出满足条件的最长子串长度。开头和结尾都是元音字母(aeiouAEIOU)的字符串为元音字符串,其中混杂的非元音字母数量为其瑕疵度。给定一个字符串,请找出指定瑕疵度的最长元音字符子串,并输出其长度,如果找不到满足条件的元音字符子串,输出0。输出为一个整数,代表满足条件的元音字符子串的长度。原创 2024-12-23 08:33:13 · 26 阅读 · 0 评论 -
华为OD机试 Python【考勤打卡】
将员工的考勤数据字符串拆分为单个记录,然后依次检查每个记录。首先统计缺勤次数,如果超过一次则直接返回 false。接着检查是否有连续的迟到或早退,如果存在则返回 false。同时,滑动窗口检查每个连续的7天考勤记录,如果缺勤、迟到或早退的次数超过3次,则返回 false。最终,如果所有条件都满足,则返回 true,表示可以获得出勤奖。根据考勤数据字符串,如果能得到考勤奖,输出”true”;否则输出”false”,3、任意连续7次考勤,缺勤/迟到/早退不超过3次。2、没有连续的迟到/早退;原创 2024-12-20 08:34:55 · 41 阅读 · 0 评论 -
华为OD机试 Python【筛选字符串】
然后根据k的值,找到第k个最小的字符(如果k大于字符长度则找到最大的字符)。输出该字母所在字符串中的位置索引(字符串的第一个位置索引为0),k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引,如果有重复字母则输出字母的最小位置索引。输入一个由N个大小写字母组成的字符,按照ASCII码值从小到大进行排序,查找字符串中第K个最小ASCII码值的字母(k>=1)输出字符串中第k个最小ASCII码值的字母所在字符串的位置索引。第二行输入k ,k必须大于0 ,k可以大于输入字符串的长度。原创 2024-12-18 08:34:19 · 32 阅读 · 0 评论 -
华为OD机试真题-正方形数量统计(Python)
输入 N 个互不相同的二维整数坐标,求这 N 个坐标可以构成的正方形数量。(内积为零的的两个向量垂直)输入描述第一行输入为 N,N 代表坐标数量,N 为正整数N ≤ 100之后的 N 行输入为坐标 x y 以空格分隔,x,y 为整数输出描述输出可以构成的正方形数量输入40 01 23 12 -1输出1此4点可构成正方形。原创 2024-12-17 08:35:36 · 33 阅读 · 0 评论 -
华为OD机试 Python【组合最小元素】
首先初始化一个最小堆,将所有可能的元素对插入堆中,然后从堆中取出和最小的k对元素并计算它们的总和。通过堆的特性确保每次取出的都是当前最小的元素对,保证了结果的最小性。假设从array1、array2中分别取出一个元素可构成一对元素,现在需要取出k对元素,并对取出的所有元素求和,计算和的最小值。输入两行数组array1、array2,每行首个数字为数组大小size(0 < size <= 100),0 < array1[i] <= 1000,0 < array2[i] <= 1000。原创 2024-12-12 08:35:04 · 29 阅读 · 0 评论 -
华为OD机试 Python【因数分解】
RSA加密算法在网络安全世界中无处不在,它利用了极大整数因数分解的困难度,数据越大,安全系数越高,给定一个 32 位正整数,请对其进行因数分解,找出是哪两个素数的乘积。,则输出这两个素数;如果遍历完所有可能的因数后未找到符合条件的素数对,则输出“-1 -1”。如果成功找到,以单个空格分割,从小到大输出两个素数,分解失败,请输出-1, -1。一个正整数 num 0 < num < 2147483647。解题思路是首先读取输入的32位正整数。原创 2024-12-11 08:32:44 · 24 阅读 · 0 评论 -
华为OD机试 Python【跳过4的计费表】
将表面读数视为跳过包含数字4的数字,逐位处理每个数字。如果当前位大于或等于4,则将其减1来跳过4,然后将处理后的每位数字按照9进制权重累加,最终得到实际的费用。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。小明识破了司机的伎俩,准备利用自己的学识打败司机的阴谋。给出计费表的表面读数,返回实际产生的费用。只有一行,数字N,表示里程表的读数。一个数字,表示实际产生的费用。23再多一块钱就变为25;原创 2024-12-10 08:33:47 · 37 阅读 · 0 评论