![](https://img-blog.csdnimg.cn/91e8b0668c9845c087435e489bf499f3.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Py | 华为OD机试AB卷
文章平均质量分 60
注意,本专栏内容转载自“伏城之外”的同名专栏,已获得“伏城之外“的授权。但是本专栏只有Python语言实现,因此价格更优惠,适合熟悉Python语言的考友。
优惠券已抵扣
余额抵扣
还需支付
¥49.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
AsiaFT.
持之以恒,水滴石穿
展开
-
华为OD机试(A&B)真题目录(Python)
华为OD真题目录,Python原创 2023-07-17 12:47:43 · 1066 阅读 · 0 评论 -
华为OD机试 - AI面板识别(Python)
由于AI识别误差,每次别到的指示灯位置可能有差异,以4个坐标值描述AI识别的指示灯的大小和位置(左上角x1,y1,右下角x2,y2),按照题目意思,每次取出一个最高的灯(y坐标最小的),然后找出和最高灯坐标相差小于等于灯半径的,作为同一行,然后按照x轴坐标进行升序。AI识别到面板上有N(1 ≤ N ≤ 100)个指示灯,灯大小一样,任意两个之间无重叠。即存在如下用圈框住的三行,因此打印顺序是:1,2,3,4,5。排序后的编号列表,编号之间以空格分隔。编号 x1 y1 2 y2。第一行为N,表示灯的个数。原创 2023-06-30 00:01:30 · 409 阅读 · 0 评论 -
华为OD机试 - 告警抑制(Python)
告警抑制,是指高优先级告警抑制低优先级告警的规则。高优先级告警产生后,低优先级告警不再产生。请根据原始告警列表和告警抑制关系,给出实际产生的告警列表。第一行为数字N,表示告警抑制关系个数,0 ≤ N ≤ 120。A抑制了B,B抑制了C,最后实际的告警为A D E。最后一行为告警产生列表,列表长度[1,100]我们基于用例2来说明下这题。大写字母+0个或者1个数字。告警ID之间以单个空格分隔。原创 2023-06-29 23:58:17 · 313 阅读 · 0 评论 -
华为OD机试 - 需要打开多少监控器(Python)
需要打开多少监控器原创 2023-06-29 23:58:29 · 484 阅读 · 0 评论 -
华为OD机试 - 二维伞的雨滴效应(Python)
之后,我们可以继续按上面逻辑递归的判断:根的左子树[satrt + 1, i - 1]、根的右子树[i, end],他们对应索引范围的子序列,是否满足二叉搜索树前序遍历的特点(根节点的值 大于 其左子树的所有节点的值、根节点的值 小于 其右子树的所有节点的值)因此,我们从start+1位置开始判断,如果satrt+1位置的元素值 < 根节点的元素值(start位置),那么start+1位置的元素就是根节点的左子树节点,按此逻辑,依次往后判断。按照上面逻辑,我们可以得到根节点、根的左子树、根的右子树。原创 2023-10-21 13:12:21 · 79 阅读 · 0 评论 -
华为OD机试 - 荒岛求生(Python)
如果左边出来的是正数,则由于正数不能从左边逃生,而只能从右边出口逃生,因此我们不能算该正数逃生成功,并且该正数还会成为左边出来的负数的逃生阻力,因此我们将左边出来的正数缓存进栈中。正负表示逃生方向(正表示向右逃生,负表示向左逃生),绝对值表示战斗力,越左边的数字表示里左边港口越近,逃生方向相同的人永远不会发生决斗。按此逻辑,最后栈的大小其实就是逃生成功的正数个数postive,我们只要求和negative+postive即为题解。若两个人相遇,则进行决斗,战斗力强的能够活下来,并损失掉与对方相同的战斗力;原创 2023-10-21 13:11:07 · 87 阅读 · 0 评论 -
华为OD机试 - 编码能力提升计划(Python)
这里,可能有人会有疑问,我们如果看time[5]答案,那么总耗时17 - 4 = 13,也可以不超时呀。为了提升软件编码能力,小王制定了刷题计划,他选了题库中的n道题,编号从0到n-1,并计划在m天内按照题目编号顺序刷完所有的题目(注意,小王不能用多天完成同一题)。很简单,我们应该将这次宝贵的机会用在看耗时最长的题目上,而这些题目中耗时最长的是time[4],因此我们看time[4]题目的答案,总耗时17 - 5 = 12。另外,在每天花费T时间做题的情况下,要在m天中做完所有题目。原创 2023-10-21 13:09:50 · 87 阅读 · 0 评论 -
华为OD机试 - 采样过滤(Python)
丢弃S[4]到S[6]的值。有两段正常连续周期,S[0]到S[3](周期数为4)和S[7]到S[11](周期数为5)。从S[5]到S[9]的5个周期内有三个错误值S[5]、S[8]和S[9],工具故障。S[4]和S[7]不满足故障条件,此值分别由S[3]和S[6]代替,即S[4]为3,S[7]为13。s[4]是故障开始点,而当前用例P=3,那么s[5]~s[7]应该是故障恢复检查时期,从S[3]到S[7]的5个周期内只有两个错误值S[3]和S[5]。S[0],S[4],S[7],S[8]为错误值。原创 2023-10-21 13:08:19 · 98 阅读 · 0 评论 -
华为OD机试 - 字符串划分(Python)
本题数量级不大,可以考虑暴力求解。即定义两个指针i, j,去模拟两个分割点,其中 i < j,且 j - i > 1,因为被分割的子串至少有1个字母。给定一个小写字母组成的字符串 s,请找出字符串中两个不同位置的字符作为分割点,使得字符串分成三个连续子串且子串权重相等,注意子串不包含分割点。若能找到满足条件的两个分割点,请输出这两个分割点在字符串中的位置下标,若不能找到满足条件的分割点请返回0,0。另外,为了避免重复求解某范围内的子串权重,我们可以使用前缀和,实现O(1)时间计算出任意区间内的子串权重。原创 2023-10-21 13:06:49 · 81 阅读 · 0 评论 -
华为OD机试 - 排队游戏(Python)
但是,pricks 中是有可能存在多个相同能力值的,对于这种情况,我们应该将ability插入到pricks中和ability相同的最后一个能力值的后面,这样才能保证 ability 被插入后,其后面值都比 ability 高。对于非刺头同学,如果发现他前面有能力值比自己高的同学,他不满程度就增加,增加的数量等于前面能力值比他大的同学的个数。因此,每个非刺头学生,其实只需要关注他前面的刺头学生即可,因为他前面的非刺头学生的能力值一定不大于他。我们可以定义一个集合 pricks 来记录刺头学生的能力值。原创 2023-10-21 13:05:41 · 66 阅读 · 0 评论 -
华为OD机试 - 人气最高的店铺(Python)
如果选择发放 10元+20元+30元=60元 的补贴来抢2,3.4号店铺的票,总共发放了60元补贴(5号店铺有2票,1号店铺要3票才能胜出)如果选择发放 10元+20元+30元=60元 的补贴来抢2,3,4号店铺的票,总共发放了60元补贴(5号店铺有2票,1号店铺要3票才能胜出)如果选择发放 10元+40元=50元 的补贴来抢2,5号店铺的票,总共发放了50元补贴(抢了5号店铺的票后,现在1号店铺只要2票就能胜出)的换皮题,具体解析请看该博客的。有5个人参与,共5个店铺。有5个人参与,共5个店铺。原创 2023-10-21 13:04:27 · 143 阅读 · 0 评论 -
华为OD机试 - 字符匹配(Python)
给你一个字符串数组(每个字符串均由小写字母组成)和一个字符规律(由小写字母和.和*组成),识别数组中哪些字符串可以匹配到字符规律上。‘.’ 匹配任意单个字符,’*’ 匹配零个或多个前面的那一个元素,所谓匹配,是要涵盖整个字符串的,而不是部分字符串。匹配的字符串在数组中的下标(从0开始),多个匹配时下标升序并用,分割,若均不匹配输出-1。第一行为空格分割的多个字符串,1原创 2023-07-15 12:52:00 · 144 阅读 · 0 评论 -
华为OD机试 - 绘图机器(Python)
我的解题思路是这样的,将上面红色线框对应的复杂图形的面积求解,切割为横轴上每个单位长度的矩形面积求解,而每单位长度的矩形面积就等于对应的高度,即纵轴坐标的绝对值,因此我们只需要将offsetY偏移转为纵坐标的即可。这里只强调递增没有强调连续,因此我们需要考虑不连续的offsetY转纵坐标的场景,其实也很简单,断档的offsetY其实默认集成前面的offsetY,这其实就是动态规划的状态转移。请计算绘制的直线和横坐标轴以及x=E的直线组成的图形面积。给定的横坐标终点值E 以及若干条绘制指令,原创 2023-07-08 15:03:27 · 230 阅读 · 0 评论 -
华为OD机试 - 购物(Python)
当两个方案选择的商品集合至少有一件不同,视为不同方案,因此可能存在两个方案花费相同。按花费从小到大的顺序依次输出K行,一行一个整数。表示花费前K小的购买方案的花费。一个购买方案可以是从N件商品种选择任意件进行购买(至少一件),花费即价格之和。商店里有N件唯一性商品,每件商品有一个价格,第 i 件商品的价格是 ai。本题其实就是要我们求解:全组合中前k小组合(按照组合之和大小排序)。现在你需要求出所有购买方案中花费前K小的方案,输出这些方案的花费。原创 2023-07-30 10:54:01 · 255 阅读 · 0 评论 -
华为OD机试 - 贪吃蛇(Python)
图2:蛇头向左移动一格,蛇头和食物重叠,注意此时食物的格子成为了新的蛇头,第1节身体移动到蛇头位置,第2节身体移动到第1节身体位置,以此类推,最后添加第4节身体到原来第3节身体的位置。注意我这里并不需要根据‘H’来判断移动中蛇头的位置,而是总是用snake[0]作为蛇头,因此matrix[i][j] = 'H'可以直接用于标记贪吃蛇身体,来区别F、E。图1:截取了贪吃蛇移动的一个中间状态,H表示蛇头,F表示食物,数字为蛇身体各节的编号,蛇为向左移动,此时蛇头和食物已经相邻。原创 2023-07-21 13:30:16 · 62 阅读 · 0 评论 -
华为OD机试 - 统计文本数量(Python)
上面代码正则中, \1是使用捕获组1的内容,而捕获组即()中的内容,如上面正则的捕获组就是([\"\']),即成对引号的一端引号,如果捕获组匹配到的是双引号,则\1也匹配双引号,如果捕获组匹配到是单引号,则\1也匹配单引号。3. 文本支持字符串,字符串为成对的单引号(')或者成对的双引号("),字符串可能出现用转义字符(\)处理的单双引号("your input is\"")和转义字符本身,比如。即在一个文本中,引号都是成对出现的,而分号恰恰是一个文本的结束标志,因此分号不可能出现在成对的引号内。原创 2023-07-21 13:29:59 · 209 阅读 · 0 评论 -
华为OD机试 - 跳房子II(Python)
如果 valSum == count,那么i,l,r指向的三数,就是一个符合要求的三数组合,此时再计算下三数的索引之和:idxSum = newSteps[i].idx+ newSteps[l].idx+ newSteps[r].idx。当i > 0时,如果steps[i] == steps[i-1],则也会产生重复组合,且此时 i,l,r三元组的索引和要大于 i-1,l,r三元组的,因此此情况也可以直接continue掉。本题的变化在于,可能存在多个三数组合满足要求,但是我们只取其中三数的索引和最小的。原创 2023-07-01 12:21:04 · 189 阅读 · 0 评论 -
华为OD机试 - 最小传输时延Ⅱ(Python)
有M*N的节点矩阵,每个节点可以向8个方向(上、下、左、右及四个斜线方向)转发数据包,每个节点转发时会消耗固定时延,连续两个相同时延可以减少一个时延值(即当有K个相同时延的节点连续转发时可以减少K- 1个时延值),求左上角(0,0)开始转发数据包到右下角(M-1,N- 1)并转发出的最短时延。第一行两个数字,M、N,接下来有M行,每行有N个数据,表示M* N的矩阵。本题可以使用深度优先搜索解题。具体逻辑请看代码注释。原创 2023-07-13 10:45:28 · 116 阅读 · 0 评论 -
华为OD机试 - 迷宫问题(Python)
本题可以使用深度优先搜索,从起点开始,将其计入path路径中,接着将起点从”0“改为”2“,表示走过该点了,然后继续dfs其上,下,左,右四个方向的点,直到dfs到的点是终点,即(n-1,m-1),此时可以return path。它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的路线。再输入相应的数组,其中的1表示墙壁,0表示可以走的路。数据范围: 2≤n,m≤10 , 输入的内容只包含 0≤val≤1。一道很简单的深度优先搜索题。原创 2023-07-14 22:43:44 · 77 阅读 · 0 评论 -
华为OD机试 - 矩阵稀疏扫描(Python)
给定一个矩阵,现在需要逐行和逐列地扫描矩阵,如果某一行或者某一列内,存在连续出现的0的个数超过了行宽或者列宽的一半 [W /2] (整除) ,则认为该行或者该列是稀疏的。给定的5*3矩阵,每行里面0的个数大于等于1表示稀疏行,每列里面0的个数大于等于2表示稀疏行,所以有5个稀疏行,3个稀疏列。给定的3*3矩阵里,每一行和每一列内都存在2个0,行宽3,列宽3,[3/2] = 1,因此稀疏行有3个,稀疏列有3个。第一行输入为M和N,表示矩阵的大小M*N,0 < M ≤ 100,0 < N ≤ 100。原创 2023-06-30 00:01:28 · 202 阅读 · 0 评论 -
华为OD机试 - 查字典(Python)
我感觉这题就是考察字符串的基本操作,一个startsWith方法。输入一个单词前缀和一个字典,输出包含该前缀的单词。这题200分的,但是感觉很简单,难道有坑?所有包含该前缀的单词,多个单词换行输出。单词前缀+字典长度+字典。字典是一个有序单词数组。原创 2023-07-01 12:24:51 · 190 阅读 · 0 评论 -
华为OD机试 - We Are A Team(Python)
本题其实就是构造无向图,并根据无向图确定两个顶点的连接关系,因此可以使用并查集求解。原创 2023-07-07 13:31:52 · 128 阅读 · 0 评论 -
华为OD机试 - 最佳的出牌方法(Python)
一轮我们应该只能找出一个最大升值的顺子,当一轮找结束后,剔除掉card_count中该顺子占用的牌数了,剩余牌有可能还会产生顺子,因此还要继续下一轮找顺子。我们可以定义一个长度为5的滑窗,其左边界为L,右边界为L+4,只要滑窗内每张牌的card_count都大于0,即L~L+4可以产生一个顺子。按照前面升值、贬值逻辑,计算出顺子是升值还是贬值,如果是贬值,则不应该L~L+4不应该产生顺子,否则可以产生顺子。按照上面逻辑,我们就可以得出连续五张牌是作为顺子划算,还是不组成顺子划算。原创 2023-07-30 10:53:10 · 214 阅读 · 0 评论 -
华为OD机试 - 周末爬山(Python)
周末小明准备去爬山锻炼,0代表平地,山的高度使用1到9来表示,小明每次爬山或下山高度只能相差k及k以内,每次只能上下左右一个方向上移动一格,小明从左上角(0,0)位置出发。广度优先搜索和深度优先搜索都是用于图的遍历,但是深搜是一条分支一条分支的遍历,而广搜是一层一层的遍历。所有用例输入均为正确格式,且在取值范围内,考生不需要考虑不合法的输入格式。在迷宫最短路径问题上,广搜的效率要更高一点。请问小明能爬到的最高峰多高,到该最高峰的最短步数,输出以空格分隔。然后接下来输入山地图,一共m行n列,均以空格分隔。原创 2023-07-30 10:51:58 · 274 阅读 · 0 评论 -
华为OD机试 - 求满足条件的最长子串的长度(Python)
从上面例子可以看出,当left指针指向数字,但是滑动窗口内已经有两个字母时,left应该移动到第一个字母的后面一个位置target。target位置只有两种数据:字母或数字,如果是字母则target位置就是滑动窗口内第二字母的位置,如果是数字,则避免了长度损失。因此,我们需要判断left指针当前指向的元素是否为字母,如果为字母,则left++才能起到减少一个字母的作用,否则不能。我们可以看看上面第三个圈的情况,当left指针指向的是数字,如果left++,则滑动窗口内的字母并不会减少。原创 2023-07-24 12:24:31 · 185 阅读 · 0 评论 -
华为OD机试 - 求字符串中所有整数的最小和(Python)
需要注意的是,当c == '-',也需要注意出现 “-34-40” 这种情况,即 c == '-',也需要先判断isNegative == true,则需要将negative容器中内容拼接,然后转化为负数合入结果,ans -= parseInt(negative.join("")),完成后,将isNeagtive = false,并且清空negative容器。2)负整数 负号 – 开头,数字部分由一个或者多个0-9组成,如 -0 -012 -23 -00023。输入字符串s,输出s中包含所有整数的最小和。原创 2023-07-24 12:24:39 · 149 阅读 · 0 评论 -
华为OD机试 - 字符串加密(Python)
给你一串未加密的字符串str,通过对字符串的每一个字母进行改变来实现加密,加密方式是在每一个字母str[i]偏移特定数组元素a[i]的量,数组a前三位已经赋值:a[0]=1,a[1]=2,a[2]=4。首先是偏移量a[i]的计算,这里直接使用动态规划记忆化,具体实现看下面代码(这里有的人会用分治递归实时计算,也可以,看考虑内存还是时间了)这个值是超过int类型的,因此Java代码定义a数组时需要使用long[]类型。当i>=3时,数组元素a[i]=a[i-1]+a[i-2]+a[i-3]。原创 2023-07-24 12:23:57 · 87 阅读 · 0 评论 -
华为OD机试 - 一种字符串压缩表示的解压(Python)
答案是不合法,原因很简单,我们将他们解压后,再按照题目要求重新压缩,得到的压缩字符串和这些是不一样的,比如3bb,解压后为bbbb,再次压缩后为4b。因此,我们只能得到解压字符串后,还需要重新压缩,来对比输入的字符串,如果不一样,则说明输入的压缩字符串不合法,需要返回!输入一行,为一个ASCII字符串,长度不会超过100字符,用例保证输出的字符串长度也不会超过100字符。请您编写解压函数,根据输入的字符串,判断其是否为合法压缩过的字符串,若判断输入为合法的经过压缩后的字符串,则输出压缩前的字符串;原创 2023-07-24 12:24:13 · 42 阅读 · 0 评论 -
华为OD机试 - 找出符合要求的字符串子串(Python)
从字符串2中找出字符串1的字符,去除重复的字符,并且按照ASCII值从小到大排序,得到输出的结果为abc。给定两个字符串,从字符串2中找出字符串1中的所有字符,去重并按照ASCII值从小到大排序。输入字符串1 为给定字符串bach,输入字符串2 bbaaccedfg。字符范围满足ASCII编码要求,按照ASCII的值由小到大排序。主要考察Set的使用,以及数组的常用操作。字符串1中的字符h在字符串2中找不到不输出。输入字符串2:长度不超过1000000。输入字符串1:长度不超过1024。原创 2023-07-24 12:24:05 · 56 阅读 · 0 评论 -
华为OD机试 - 字符串分割(二)(Python)
给定一个非空字符串S,其被N个‘-’分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。反之,如果它含有的大写字母比小写字母多,则将这个子串的所有小写字母转换为大写字母;对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有大写字母转换为小写字母;子串为12abc、abCABc、4aB@,第一个子串保留,子串为12abc、abCABc、4aB@,第一个子串保留,后面的子串每3个字符一组为abC、ABc、4aB、@,原创 2023-07-24 12:24:21 · 85 阅读 · 0 评论 -
华为OD机试 - 全量和已占用字符集(Python)
给定两个字符集合,一个是全量字符集,一个是已占用字符集,已占用字符集中的字符不能再使用。增加处理:7、如果一个字符都没被占用 @标识仍存在,例如 a:3,b:5,c:2@要求输出剩余可用字符集。原创 2023-07-23 16:03:32 · 97 阅读 · 0 评论 -
华为OD机试 - 拼接URL(Python)
url前缀(一个长度小于100的字符串),url后缀(一个长度小于100的字符串)给定一个url前缀和url后缀,通过,分割 需要将其连接为一个完整的url。约束:不用考虑前后缀URL不合法情况。逻辑题,可以直接看代码实现了解逻辑。原创 2023-07-23 16:04:10 · 51 阅读 · 0 评论 -
华为OD机试 - 英文输入法(Python)
从用户已输入英文语句”I love you”中提炼出“I”、“love”、“you”三个单词,接下来用户输入“He”,从已输入信息中无法联想到任何符合要求的单词,因此输出用户输入的单词前缀。输出符合要求的单词序列或单词前缀,存在多个时,单词之间以单个空格分割。简单的逻辑题,应该是主要考察数组去重,数组字典排序,过滤等知识。首行输入一段由英文单词word和标点符号组成的语句str;期望你来实现英文输入法单词联想功能。接下来一行为一个英文单词前缀pre。原创 2023-07-23 16:04:25 · 271 阅读 · 0 评论 -
华为OD机试 - 按单词下标区间翻转文章内容(Python)
例如给定的英文文章片段为"I am a developer",翻转区间为[0,3],则输出“developer a am I”。给定一段英文文章片段,由若干单词组成,单词间以空格间隔,单词下标从0开始。翻转后的英文文章片段所有单词之间以一个半角空格分隔进行输出。注意startIndex和endIndex的越界处理即可。请翻转片段中指定区间的单词顺序并返回翻转后的内容。本题主要考察数组常规操作,以及简单的双指针使用。英文文章内容首尾无空格。使用换行隔开三个参数。原创 2023-07-23 16:04:17 · 75 阅读 · 0 评论 -
华为OD机试 - 字符串筛选排序(Python)
根据第二个用例来看,题目要找的第k个,不是去重+升序后的第k个,而只是排序后的第k个。k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引。k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引。如果第k个最小ASCII码值的字母存在重复 则输出该字母的最小位置索引。输出该字母所在字符串中的位置索引(字符串的第一个位置索引为0)输出字符串中第k个最小ASCII码值的字母所在字符串的位置索引。F在字符串中位置索引为5(0为字符串的第一个字母位置索引)简单的字符串操作题。原创 2023-07-23 16:04:02 · 75 阅读 · 0 评论 -
华为OD机试 - 连续字母长度(Python)
给定一个字符串,只包含大写字母,求在包含同一字母的子串中,长度第 k 长的子串的长度,相同字母只取最长的那个子串。而用例1输出的第k=3大重复度的子串的长度是2,那就肯定是指BB子串。而用例1输出的第k=2大重复度的子串的长度是1,这里又是取名义上第k大了?第二多的是H,3次,但是H已经存在4个连续的,故不考虑;比如用例1: A:4,H:4,B:2,C:1,D:1。接下来是,实际上的第3大,名义上的第2大子串:BB。接下来是,实际上的第3大,名义上的第2大子串:B。这里第k=2大,那就是B,子串长度为1。原创 2023-07-23 16:03:55 · 63 阅读 · 0 评论 -
华为OD机试 - 密钥格式化(Python)
给定一个非空字符串 S,其被 N 个’-‘分隔成 N+1 的子串,给定正整数 K,要求除第一个子串外,其余的串每 K 个用’-‘分隔,并将小写字母转换为大写。字符串 S 被分成了两个部分,每部分 4 个字符;注意,两个额外的破折号需要删掉。原创 2023-07-23 16:03:47 · 50 阅读 · 0 评论 -
华为OD机试 - 找出经过特定点的路径长度(Python)
解题思路如下,首先统计第二行输入的必过点在第一行字符串中的索引位置,需要注意的是必过点可能在第一行中出现多次,我们都要统计到。之后计算这些路径的距离,即相邻两点求差绝对值,然后相加,需要注意的时,我们需要将从起点走到第一个必过点的距离也加入为路径距离。绿色路径更短,最小距离42(注意,该最小距离是,必须从第一行输入的首字母出发的最小距离)最小距离44(注意,该最小距离是,必须从第一行输入的首字母出发的最小距离)输入一个字符串,都是以大写字母组成,每个相邻的距离是 1,第二行输入一个字符串,表示必过的点。原创 2023-07-23 16:03:40 · 64 阅读 · 0 评论 -
华为OD机试 - 查找接口成功率最优时间段(Python)
这里,我们为了避免陷入遍历i到j,来计算区间[i, j]的总和,我们可以事先定义一个dp数组,dp[i]表示以0~i区间的和(即前缀和)。数组下标为0-1即[0, 0],数组下标为3-4即[2, 2],数组下标为6-7即[0, 2],这三个部分都满足平均值小于等于2的要求,输入有两行内容,第一行为{minAverageLost},第二行为{数组},数组元素通过空格(” “)分隔,输入解释:minAverageLost=2,数组[0, 0, 100, 2, 2, 99, 0, 2]原创 2023-07-23 16:03:16 · 156 阅读 · 0 评论 -
华为OD机试 - 在字符串中找出连续最长的数字串(含“+-”号)(Python)
.”、“±”仅能出现一次,”.”的两边必须是数字,”±”仅能出现在开头且其后必须要有数字。请在一个字符串中找出连续最长的数字串,并返回这个数字串。本题只要构造出符合题目对数字串要求的正则即可。如果存在长度相同的连续数字串,返回最后一个。如果没有符合条件的字符串,返回空字符串””。原创 2023-07-23 16:03:24 · 173 阅读 · 0 评论