- 博客(42)
- 问答 (1)
- 收藏
- 关注
原创 华为OD 增强的strstr
C 语言有一个库函数: char *strstr(const char *haystack, const char *needle) ,实现在字符串 haystack 中查找第一次出现字符串 needle 的位置,如果未找到则返回 null。现要求实现一个strstr的增强函数,可以使用带可选段的字符串来模糊查询,与strstr一样返回首次查找到的字符串位置。与strstr函数不同,返回的是源字符串中,匹配子字符串相对于源字符串地址的偏移(从0开始算),如果没有匹配返回-1。
2024-09-25 16:56:46
422
原创 华为OD 跳房子
此样例有多种组合满足两回合跳到最后,譬如:[-1,9],[2,6],其中[-1,9]的索引和为0+3=3,[2,6]的索和为1+4=5,所以索引和最小的步数组合[-1,9]假设房子的总格数是count,小红每回合可能连续跳的步教都放在数组steps中,请问数组中是否有一种步数的组合,可以让小红两个回合跳到量后一格?第二行输入为每回合可能连续跳的步数,它是int整数数组类型。跳房子,也叫跳飞机,是一种世界性的儿童游戏。跳房子的过程中,可以向前跳,也可以向后跳。如果有,请输出索引和最小的步数组合。
2024-09-25 15:13:17
404
原创 华为OD 字符统计与重排
给出一个仅包含字母的字符串,不包含空格,统计字符串中各个字母(区分大小写)出现的次数,并按照字母出现次数从大到小的顺序。输出各个字母及其出现次数。如果次数相同,按照自然顺序进行排序,且小写字母在大写字母之前。按照字母出现次数从大到小的顺序输出各个字母和字母次数,用英文分号分隔,注意末尾的分号;每个字符出现的个数都是2,故x排在y之前,而小写字母x在X之前。输入一行,为一个仅包含字母的字符串。b的出现个数比a多,故b排在a之前。字母和次数间用英文冒号分隔。
2024-09-25 13:37:38
275
原创 华为OD 单词接龙
先确定起始单词word,再接以d开头的且长度最长的单词dword,剩余以d开头且长度最长的有dd、da、dc,则取字典序最小的da,所以最后输出worddwordda。先确定起始单词dword,剩余以d开头且长度最长的有dd、da、dc,则取字典序最小的da,所以最后输出dwordda。现给定一组全部由小写字母组成单词数组,并指定其中的一个单词作为起始单词,进行单词接龙,请输出最长的单词串,单词串是单词拼接而成,中间没有空格。
2024-09-25 12:32:44
233
原创 华为OD 水仙花数
例如153是水仙花数,153是一个3位数,并且153 = 1^3 + 5^3 + 3^3。第一行输入一个整数n,表示一个n位的正整数。n在3到7之间,包含3和7。所谓水仙花数,是指一个n位的正整数,其各位数字的n次方和等于该数本身。若m大于水仙花数的个数,返回最后一个水仙花数和m的乘积。第二行输入一个整数m,表示需要返回第m个水仙花数。返回长度是n的第m个水仙花数。若输入不合法,返回-1。153是第一个水仙花数。
2024-09-25 10:22:31
260
原创 华为OD 游戏分组
例:10 名参赛者的评分分别为:5 1 8 3 4 6 7 10 9 2,分组为(1 3 5 8 10)和(2 4 6 7 9),两组实力差最小,差值为1。有多种分法,但是实力差的绝对值最小为1。现在给你 10 名参与者的游戏水平评分,请你根据上述要求分队,最后输出这两组的实力差绝对值。部门准备举办一场王者荣耀表演赛,有 10 名游戏爱好者参与,分为两队,每队 5 人。10个整数,表示10名参与者的游戏水平评分。1个整数,表示分组后两组实力差绝对值的最小值。10名队员分为两组,两组实力差绝对值最小为1。
2024-09-25 09:55:30
454
原创 华为OD 敏感字段加密
请对指定索引的敏感字段进行加密,替换为******(6个*),并删除命令字前后多余的下划线_。如果无法找到指定索引的命令字,输出字符串ERROR。输出处理后的命令字符串,如果无法找到指定索引的命令字,输出字符串ERROR。输入为两行,第一行为命令字索引K(从0开始),第二行为命令字符串S。
2024-09-24 18:30:27
243
原创 华为OD 矩形相交面积
3行输入分别为3个矩形的位置,分别代表“左上角x坐标”,“左上角y坐标”,“矩形宽”,“矩形高” -1000 <= x,y < 1000。给出3组点坐标(x, y, w, h),-1000<x,y<1000,w,h为正整数。(x, y, w, h)表示x轴(x, x+w)和y轴(y, y-h)围成的矩形区域;(0, 0, 2, 2)表示 x轴(0, 2)和y 轴(0, -2)围成的矩形区域;(3, 5, 4, 6)表示x轴(3, 7)和y轴(5, -1)围成的矩形区域;
2024-09-24 12:34:54
248
原创 华为OD 工作安排
小明每周上班都会拿到自己的工作清单,工作清单内包含 n 项工作,每项工作都有对应的耗时时间(单位 h)和报酬,工作的总报酬为所有已完成工作的报酬之和,那么请你帮小明安排一下工作,保证小明在指定的工作时间内工作收入最大化。接下来是 n 行,每行包含两个整数 t,w。输出小明指定工作时长内工作可获得的最大报酬。输入的第一行为两个正整数 T,n。
2024-09-24 10:09:57
332
原创 华为OD 找终点
给定一个正整数数组,设为nums,最大为100个成员,求从第一个成员开始,正好走到数组最后一个成员,所使用的最少步骤数。由正整数组成的数组,以空格分隔,数组长度小于100,请自行解析数据数量。第一步: 第一个可选步长选择2,从第一个成员7开始走2步,到达9;第二步: 从9开始,经过自身数字9对应的9个成员到最后。正整数,表示最少的步数,如果不存在输出-1。
2024-09-23 17:19:24
411
原创 华为OD 分苹果
A、B两个人把苹果分为两堆,A希望按照他的计算规则等分苹果,他的计算规则是按照二进制加法计算,并且不计算进位 12+5=9(1100 + 0101 = 9),B的计算规则是十进制加法,包括正常进位,B希望在满足A的情况下获取苹果重量最多。输入苹果的数量和每个苹果重量,输出满足A的情况下B获取的苹果总重量。输入第二行是每个苹果重量:3 5 6。输出第一行是B获取的苹果总重量:11。如果无法满足A的要求,输出-1。输入第一行是苹果数量:3。
2024-09-23 16:45:43
324
原创 华为OD 数组拼接
合并规则,从每个数组里按顺序取出固定长度的内容合并到新的数组中,取完的内容会删除掉,如果该行不足固定长度或者已经为空,则直接取出剩余部分的内容放到新的数组中,继续下一行。第3-n行是需要合并的数组,不同的数组用回车换行分隔,数组内部用逗号分隔,最大不超过100个元素。现在有多组整数数组,需要将它们合并成一个新的数组。6、再回到第一行,获得7,按顺序拼接成最终结果。4、再循环回到第一行,获得7,9,5。2、先遍历第一行,获得2,5,6。3、再遍历第二行,获得1,7,4。5、再遍历第二行,获得3,4。
2024-09-23 16:07:35
214
原创 华为OD 分糖果
当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。小明最少需要多少次(取出、放回和平均分配均记一次),能将手中糖果分至只剩一颗。小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。抓取的糖果数(<10000000000):15。最少分至一颗糖果的次数:5。
2024-09-23 15:23:33
342
原创 华为OD 流浪地球
当然最终所有的发动机都会被启动。哪些发动机最晚被启动呢?流浪地球计划在赤道上均匀部署了 N 个转向发动机,按位置顺序编号为 0 ~ N。时刻1启动(1,3,5,7)(其中1,3被2关联启动,5,7被6关联启动);时刻2启动(0,4)(其中0被1,7关联启动,4被3,5关联启动);接下来共 E 行,每行都是两个数字 T 和 P,中间有空格。至此所有发动机都被启动,最后被启动的有2个,分别是0和4。第二行 N 个数字,中间有空格,以回车结束。第一行两个数字 N 和 E,中间有空格。时刻0启动(2,6);
2024-09-23 11:18:17
560
原创 华为OD 工号不够用了怎么办
但是过长的工号会增加同事们的记忆成本,现在给出新工号至少需要分配的人数X和新工号中字母的长度Y,求新工号中数字的最短长度Z。新工号由一段英文字母开头,之后跟随一段数字,比如”aaahw0001″,”a12345″,”abcd1″,”a00″。现在,请你负责调研新工号系统。继承历史传统,新的工号系统由小写英文字母(a-z)和数字(0-9)两部分构成。3020年,空间通信集团的员工人数突破20亿人,即将遇到现有工号不够用的窘境。注意新工号不能全为字母或者数字,允许数字部分有前导0或者全为0。
2024-09-21 20:22:42
479
原创 华为OD 第k个排序
给定参数 n,从 1 到 n 会有 n 个整数:1,2,3,…,n, 这 n 个数字共有 n!给定 n 的范围是[1, 9], 给定 k 的范围是[1, n!3的排列有123,132,213…,那么第三位置就是213。2的排列有12,21,那么第二位置的为21。给定 n 和 k,返回第 k 个排列。输入两行,第一行为 n,第二行为 k,输出排在第 k 位置的数字。
2024-09-21 19:35:38
319
原创 华为OD 恢复数字序列
对于一个连续正整数组成的序列,可以将其拼接成一个字符串,再将字符串里的部分字符打乱顺序。如序列8 9 10 11 12,拼接成的字符串为89101112,打乱一部分字符后得到90811211,原来的正整数10就被拆成了0和1。输入一行,为打乱字符的字符串和正整数序列的长度,两者间用空格分隔,字符串长度不超过200,正整数不超过1000,保证输入可以还原成唯一序列。现给定一个按如上规则得到的打乱字符的字符串,请将其还原成连续正整数序列,并输出序列中最小的数字。输出一个数字,为序列中最小的数字。
2024-09-21 17:10:12
283
原创 华为OD vlan资源池
原VLAN资源池中有VLAN 5、6、7、8、9、10、15、18、20、21、30,从资源池中移除15后,资源池中剩下的VLAN为 5、6、7、8、9、10、18、20、21、30,按照题目描述格式并升序后的结果为5-10,18,20-21,30。原VLAN资源池中有VLAN 1、2、3、4、5,从资源池中移除2后,剩下VLAN 1、3、4、5,按照题目描述格式并升序后的结果为1,3-5。第一行为字符串格式的VLAN资源池,第二行为业务要申请的VLAN,VLAN的取值范围为[1,4094]之间的整数。
2024-09-21 16:25:43
514
原创 华为OD 关联子串
给定两个字符串str1和str2,如果字符串str1中的字符,经过排列组合后的字符串中,只要有一个字符串是str2的子串,则认为str1是str2的关联子串。str2包含str1的一种排列组合("cab"),此组合在str2的字符串起始位置为5(从0开始计数)若str1是str2的关联子串,请返回子串在str2的起始位置;若str1是str2的关联子串,请返回子串在str2的起始位置;若str2中有多个str1的组合子串,请返回最小的起始位置。输入两个字符串,分别为题目中描述的str1、str2。
2024-09-21 15:29:11
510
原创 华为OD 分割数组的最大差值
左数组 = [1,-2,3,4,-9] 且 右数组 = [7],和的差值 = | -3 - 7| = 10最大的差值为10。左数组 = [1,-2,3,4] 且右数组=[-9,7],和的差值 = | 6 - (-2) | = 8,左数组 = [1] 且 右数组 = [-2,3,4,-9,7],和的差值 = | 1 - 3 | = 2。左数组 = [1,-2] 且 右数组 = [3,4,-9,7],和的差值 = | -1 - 5 | =6。
2024-09-21 11:27:27
253
原创 华为OD 荒岛逃生游戏
正负表示逃生方向(正表示向右逃生,负表示向左逃生),绝对值表示战斗力,越左边的数字表示里左边港口越近,逃生方向相同的人永远不会发生决斗。若两个人相遇,则进行决斗,战斗力强的能够活下来,并损失掉与对方相同的战斗力;一个荒岛上有若干人,岛上只有一条路通往岛屿两端的港口,大家需要逃往两端的港口才可逃生。第3个人和第4个人同归于尽,第2个人杀死第5个人并剩余5战斗力,第1个人没有遇到敌人。能够逃生的人总数,没有人逃生输出0,输入异常时输出-1。假定每个人移动的速度一样,且只可选择向左或向右逃生。
2024-09-21 10:53:54
342
原创 华为OD 查找接口成功率最优时间段
找出平均值小于等于minAverageLost的最长时间段,输出数组下标对,格式{beginIndex}-{endIndx}(下标从0开始),数组下标为0-1即[0, 0],数组下标为3-4即[2, 2],数组下标为6-7即[0, 2],这三个部分都满足平均值小于等于2的要求,输入有两行内容,第一行为{minAverageLost},第二行为{数组},数组元素通过空格(” “)分隔,输入解释:minAverageLost=2,数组[0, 0, 100, 2, 2, 99, 0, 2]
2024-09-21 10:03:42
437
原创 华为OD 根据某条件聚类最少交换次数
小于2的表达式是1 1 0, 共三种可能将所有符合要求数字组合一起,最少交换1次。给出数字K,请输出所有结果小于K的整数组合到一起的最少交换次数。组合一起是指满足条件的数字相邻,不要求相邻后在数组中的位置。第一行输入数组:1 3 1 4 0。第一行输出最少交换次数:1。第二行输入K数值:2。
2024-09-20 21:54:13
342
原创 华为OD 数字涂色
2与4涂一种颜色,4能被2整除;3与9涂另一种颜色,9能被3整除。不能4个数涂同一个颜色,因为3与9不能被2整除。所以最少的颜色是两种。为了让黑板报既美观又有学习意义,老师要求同种颜色的所有数都可以被这种颜色中最小的那个数整除。第二行有N个int型数(保证输入数据在[1,100]范围中),表示黑板上各个正整数的值。疫情过后,希望小学终于又重新开学了,三年二班开学第一天的任务是将后面的黑板报重新制作。黑板上已经写上了N个正整数,同学们需要给这每个数分别上一种颜色。输出只有一个整数,为最少需要的颜色种数。
2024-09-20 21:00:56
353
原创 华为OD IPv4地址转换成整数
现以字符串形式给出一个虚拟IPv4地址,限制第1小节的范围为1 ~ 128,即每一节范围分别为(1 ~ 128)#(0~255)#(0~255)#(0~255),要求每个IPv4地址只能对应到唯一的整数上。输入不能确保是合法的IPv4地址,需要对非法IPv4(空串,含有IP地址中不存在的字符,非合法的#分十进制,十进制整数不在合法区间内)进行识别,返回特定错误。如果是非法IPv4,返回invalid IP。输出一行,按照要求输出整型或者特定字符。输入一行,虚拟IPv4地址格式字符串。
2024-09-20 17:53:31
319
原创 华为OD 寻找链表的中间节点
其中Address是结点地址,Data是该结点保存的整数数据(0 ≤ Data ≤ 10^8),Next是下一结点的地址。第一行给出链表首结点的地址、结点总个数正整数 N (≤ 10^5)。对每个测试用例,在一行中输出 L 中间结点保存的数据。如果有两个中间结点,则输出第二个中间结点保存的数据。已确保输入的结点所构成的链表 L 不会成环,但会存在部分输入结点不属于链表 L 情况。给定一个单链表 L,请编写程序输出 L 中间结点保存的数据。如果有两个中间结点,则输出第二个中间结点保存的数据。
2024-09-20 17:18:26
580
原创 华为OD 热点网站统计
1、总访问网页数量小于5000个,单网页访问次数小于65535次;2、网页URL仅由字母,数字和点分隔符组成,且长度小于等于127字节;2、如果有访问次数相等的URL,按URL的字符串字典序升序排列,输出排序靠前的URL;企业路由器的统计页面,有一个功能需要动态统计公司访问最多的网页URL top N。每一行都是一个URL或一个数字,如果是URL,代表一段时间内的网页访问;如果是一个数字N,代表本次需要输出的Top N个URL。每行输入要对应一行输出,输出按访问次数排序的前N个URL,用逗号分隔。
2024-09-20 16:23:46
471
原创 华为OD 求字符串中所有整数的最小和
2)负整数:负号 – 开头,数字部分由一个或者多个0-9组成,如 -0 -012 -23 -00023。1)正整数:一个或者多个0-9组成,如 0 2 3 002 102。输入字符串s,输出s中包含所有整数的最小和。字符串s,只包含 a-z A-Z ±。
2024-09-20 15:41:34
245
原创 华为OD 连续字母长度
给定一个字符串,只包含大写字母,求在包含同一字母的子串中,长度第 k 长的子串的长度,相同字母只取最长的那个子串。三个子串长度均为1,所以此时k = 1,k=2,k=3这三种情况均输出1。第二多的还是A,两次,但A已经存在最大连续次数三次,故不考虑;第二多的是H,3次,但是H已经存在4个连续的,故不考虑;只含有3个包含同一字母的子串,小于k,输出-1。下个最长子串是BB,所以最终答案应该输出2。同一字母连续出现的最多的是A和H,四次;同一字母连续出现的最多的是A,三次;下个最长子串是B,所以输出1。
2024-09-20 14:24:00
257
原创 华为OD 英文输入法
从用户已输入英文语句”The furthestdistance in the world, Is not between life and death, But when I stand in frontof you, Yet you dont know that I love you.”中提炼出的单词,符合“f”作为前缀的,有“furthest”和“front”,按字典序排序并在单词间添加空格后输出,结果为“front furthest”。首行输入一段由英文单词word和标点符号组成的语句str;
2024-09-20 13:09:48
370
原创 华为OD 字符串分割
给定一个非空字符串S,其被N个‘-’分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。反之,如果它含有的大写字母比小写字母多,则将这个子串的所有小写字母转换为大写字母;对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有大写字母转换为小写字母;子串为12abc、abCABc、4aB@,第一个子串保留,子串为12abc、abCABc、4aB@,第一个子串保留,后面的子串每3个字符一组为abC、ABc、4aB、@,
2024-09-20 12:09:49
369
原创 华为OD boss的收入
分销关系和收入:[[分销id 上级分销id 收入], [分销id 上级分销id 收入], [分销id 上级分销id 收入]]一个XX产品行销总公司,只有一个boss,其有若干一级分销,一级分销又有若干二级分销,每个分销只有唯一的上级分销。规定,每个月,下级分销需要将自己的总收入(自己的+下级上交的)每满100元上交15元给自己的上级。现给出一组分销的关系,和每个分销的收入,请找出boss并计算出这个boss的收入。给定的输入数据都是合法的,不存在环路,重复的。分销ID 上级分销ID 收入。
2024-09-20 10:25:00
495
原创 华为OD TVL解码
TLV编码是按[Tag Length Value]格式进行编码的,一段码流中的信元用Tag标识,Tag在码流中唯一不重复,Length表示信元Value的长度,Value表示信元的值。码流以某信元的Tag开头,Tag固定占一个字节,Length固定占两个字节,字节序为小端序。现给定TLV格式编码的码流,以及需要解码的信元Tag,请输出该信元的Value。第一个信元的Tag是32,信元长度为1(01 00,小端序表示为1);第四个信元的Tag是31,其长度为2(02 00),需要解析的信元的Tag是31,
2024-09-19 16:47:15
446
原创 华为OD 靠谱的车
出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。给出计费表的表面读数,返回实际产生的费用。一个数字,表示实际产生的费用。只有一行,数字N,表示里程表的读数。
2024-09-19 14:41:01
419
原创 华为OD 吃火锅
你希望吃到最多的刚好合适的菜,但你的手速不够快,用m代表手速,每次下手捞菜后至少要过m秒才能再捞(每次只能捞一个)。接下来有n行,每行有两个数x,y代表第x秒下的菜过y秒才能变得刚好合适。(1 < x, y < 1000)第一行两个整数n,m,其中n代表往锅里下的菜的个数,m代表手速。(1 < n, m < 1000)输出一个整数代表用最合理的策略,最多能吃到刚好合适的菜的数量。那么用最合理的策略,最多能吃到多少刚好合适的菜?不同食材要煮不同的时间,才能变得刚好合适。入职后,导师会请你吃饭,你选择了火锅。
2024-09-12 11:06:51
365
原创 简单排序功能
举例,输入一堆依赖关系: A->C B->D C->E B->C D->E F->A F->B。简单实现一个排序功能,用于规划任务执行的先后顺序。最终算出执行顺序为 E C A D B F。如任务A依赖于任务B记成 A -> B。
2024-09-08 20:54:14
157
原创 最长公共子串
1. 写一个算法查找两个字符串中公共最大的字符串。(要求:低时间复杂度)如: abcdefabcd abefabghi 找出: efab。
2024-09-08 20:01:57
183
原创 华为OD 数大雁
2.大雁会依次完整发出”quack”,即字符串中’q’ ,‘u’, ‘a’, ‘c’, ‘k’ 这5个字母按顺序完整存在才能计数为一只大雁。一个字符串,包含大雁quack的叫声。1
2024-09-07 17:59:25
529
原创 华为OD 最小的调整次数
小A依次执行2n个指令往队列中添加数据和移出数据。其中n个指令是添加数据(可能从头部添加、也可能从尾部添加),依次添加1到n;n个指令是移出数据。有一个特异性的双端队列,该队列可以从头部或尾部添加数据,但是只能从头部移出数据。另外 n 行为移出数据指令,指令为:"remove" 的形式,表示移出1个数据;请问 小A 最少需要调整几次才能够满足移除数据的顺序正好是1到n;为了满足最后输出的要求,小A可以在任何时候调整队列中数据的顺序。第一行一个数据n,表示数据的范围。现在要求移除数据的顺序为1到n。
2024-09-05 15:40:56
310
原创 华为OD 斗地主之顺子
例如:{3,4,5,6,7}、{3,4,5,6,7,8,9,10,J,Q,K,A}都是有效的顺子;而{J,Q,K,A,2}、 {2,3,4,5,6}、{3,4,5,6}、{3,4,5,6,8}等都不是顺子。在斗地主扑克牌游戏中, 扑克牌由小到大的顺序为:3,4,5,6,7,8,9,10,J,Q,K,A,2,玩家可以出的扑克牌阵型有:单张、对子、顺子、飞机、炸弹等。如果存在多个顺子,请每行输出一个顺子,且需要按顺子的第一张牌的大小(必须从小到大)依次输出。如果没有满足出牌规则的顺子,请输出No。
2024-09-05 13:42:31
225
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人