
华为机试OD2024(Java&JS&Python&C++)
文章平均质量分 71
最全的(500+、老题库+新题库)华为OD机考算法题,最真实通过率反馈,支持Java、JavaScript、Python,每篇博客都包含详细的算法考点解析(文字+画图说明),每天实时更新,每天不定时在线答疑。(不从事代考,勿扰)
华为OD面试指南
这个作者很懒,什么都没留下…
展开
-
华为OD机试2024(JS,C++,JAVA,PYTHON)-数大雁
2.大雁会依次完整发出”quack”,即字符串中’q’ ,‘u’, ‘a’, ‘c’, ‘k’ 这5个字母按顺序完整存在才能计数为一只大雁。如果不完整或者没有按顺序则不予计数。3.如果字符串不是由’q’, ‘u’, ‘a’, ‘c’, ‘k’ 字符组合而成,或者没有找到一只大雁,请返回-1。一群大雁往南飞,给定一个字符串记录地面上的游客听到的大雁叫声,请给出叫声最少由几只大雁发出。原创 2024-06-07 14:17:29 · 241 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-敏感字段加密
给定一个由多个命令字组成的命令字符串: 1、小于等于127字节,只包含大小写字母,数字,下划线和偶数个双引号;2、命令字之间以一个或多个下划线_进行分割;3、可以通过两个双引号””来标识包含下划线_的命令字或空命令字(仅包含两个双引号的命令字),双引号不会在命令字内部出现;请对指定索引的敏感字段进行加密,替换为******(6个*),并删除命令字前后多余的下划线_。如果无法找到指定索引的命令字,输出字符串。原创 2024-06-07 14:15:29 · 186 阅读 · 0 评论 -
华为OD机试2023(JS,C++,JAVA,PYTHON)-支持优先级的队列
输入样例中,向队列写入了4个数据,每个数据由数据内容和优先级组成。输入样例中,向队列写入了4个数据,每个数据由数据内容和优先级组成。实现一个支持优先级的队列,高优先级先出队列;如果两个输入数据和优先级都相同,则后一个数据不入队列被丢弃。数据40的优先级最高,所以最先输出,其次是30;数据40的优先级最高,所以最先输出,其次是30;一组待存入队列的数据 (包含内容和优先级)队列的数据内容(优先级信息输出时不再体现)10和20优先级相同,所以按输入顺序输出。输入和输出内容都不含空格。输入和输出内容都不含空格。原创 2024-06-07 14:14:21 · 137 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-按身高和体重排队
1和3的身高体重都相同,需要按照原有位置关系让1排在3前面,而不是3 1 2。输出的第一个数字2表示此人原始编号为2,即身高为100,体重为30的这个人。对于身高体重都相同的人,维持原有的编号顺序关系。请输出排列后的学生编号。两个序列,每个序列由n个正整数组成(0 < n原创 2024-06-07 14:12:50 · 172 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-按单词下标区间翻转文章内容
a developer",翻转区间为[0,3],则输出“developer a am I”。给定一段英文文章片段,由若干单词组成,单词间以空格间隔,单词下标从0开始。这个解题思路可以确保在给定的英文文章片段中,指定区间的单词顺序被正确翻转。翻转后的英文文章片段所有单词之间以一个半角空格分隔进行输出。请翻转片段中指定区间的单词顺序并返回翻转后的内容。下标大于实际单词个数,则按最大下标算。例如给定的英文文章片段为"I。下标小于0时,从第一个单词开始。翻转区间无效时,不做翻转。使用换行隔开三个参数。原创 2024-06-04 13:49:38 · 101 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-拼接URL
给定一个url前缀和url后缀,通过,分割 需要将其连接为一个完整的url。) url后缀(一个长度小于100的字符串)约束:不用考虑前后缀URL不合法情况。url前缀(一个长度小于100的。原创 2024-06-04 13:48:33 · 58 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-拔河比赛
输入为N行员工信息,表示部门报名参加选拔的候选人信息,每行有两个数字,使用空格分隔,表示员工的身高、体重信息。要求输出一个10行的已经排序的参赛员工信息数据,每行有两个数字,使用空格分隔,表示员工的身高、体重信息如。表示两位候选员工,第一人身高181厘米,体重70公斤;第二人身高182厘米,体重70公斤。输入为一个数组,记录了部门人员的身高、体重信息,如[身高,体重]的方式放置;公司最近准备进行拔河比赛,需要在全部员工中进行挑选。部门全部成员数量为大于10的一个数组。要求输出一个size为10的二维数组。原创 2024-06-04 13:47:24 · 49 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-报文重排序
题目描述:报文对报文进行重传和重排序是常用的可靠性机制,重传缓冲区内有一定数量的子报文,每个子报文在原始报文中的顺序已知,现在需要恢复出原始报文。。原创 2024-06-04 13:45:44 · 44 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-报文回路
协议中响应报文和查询报文,是维系组播通路的两个重要报文,在一条已经建立的组播通路中两个相邻的 HOST 和 ROUTER,ROUTER 会给 HOST 发送查询报文,HOST 收到查询报文后给 ROUTER 回复一个响应报文,以维持相之间的关系,一旦这关系断裂,那么这条组播通路就异常”了。第一行抓到的报文数量C (C≤100) ,后续C行依次输入设备节点D1和D2,表示从D1到D2发送了单向的报文,D1和D2用空格隔开。组播通路是否“正常”,正常输出True, 异常输出False。原创 2024-06-04 13:42:28 · 82 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-报数问题
从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。输入人数n(n < 1000)输出最后留下的是原来第几号。,顺序排号为1-n。原创 2024-06-04 13:41:25 · 61 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-报数游戏
输入M为3,最后剩下两个人。输入M为4,最后剩下三个人。原创 2024-06-04 13:39:43 · 60 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-找朋友
请重新生成一个列表,对应位置的输出是每个小朋友的好朋友位置,如果没有看到好朋友,请在该位置用0代替。第一个小朋友身高100,站在队尾位置,向队首看,没有比他身高高的小朋友,所以输出第一个值为0。第i个小朋友可以看到的第一个比自己身高更高的小朋友j,那么j是i的好朋友(要求j > i)。在学校中,N个小朋友站成一队, 第i个小朋友的身高为height[i],第二行输入N个小朋友的身高height[i],都是整数。第一行输入N,N表示有N个小朋友。输出N个小朋友的好朋友的位置。原创 2024-06-04 13:38:48 · 70 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-找最小数
给一个正整数NUM1,计算出新正整数NUM2,NUM2为NUM1中移除N位数字后的结果,需要使得NUM2的值最小。由0-9字符组成,记录正整数NUM1,NUM1长度小于32。2.输入的第二行为需要移除的数字的个数,小于NUM1长度。输出一个数字字符串,记录最小值NUM2。维护一个单调递增的栈来实现移除数字。1.输入的第一行为一个。原创 2024-06-03 16:54:42 · 71 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-执行时长GPU算力
算力],需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务。假设GPU最多一次执行n个任务,一次执行耗时1秒,在保证GPU不空闲情况下,最少需要多长时间执行完成。原创 2024-06-03 15:46:52 · 45 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-恢复数字序列
对于一个连续正整数组成的序列,可以将其拼接成一个字符串,再将字符串里的部分字符打乱顺序。如序列8 9 10 11 12,拼接成的字符串为89101112,打乱一部分字符后得到90811211,原来的正整数10就被拆成了0和1。然后遍历所有可能的连续整数序列,对于每个序列,检查序列中的字符数量是否与打乱字符的字符串中各字符数量一致。现给定一个按如上规则得到的打乱字符的字符串,请将其还原成连续正整数序列,并输出序列中最小的数字。输入一行,为打乱字符的字符串和正整数序列的长度,两者间用空格分隔,原创 2024-06-03 15:45:31 · 50 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-快速人名查找
快速人名查找要求︰人名的每个单词的连续前几位能组成给定字符串,一定要用到每个单词。然后给定一个字符串,进行快速人名查找,符合要求的输出。给一个字符串,表示用’,’分开的人名。第一行是人名,用’,’分开的人名。原创 2024-06-03 15:40:12 · 76 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-快递运输
运送的快递放在大小不等的长方体快递盒中,为了能够装载更多的快递同时不能让货车超载,需要计算最多能装多少个快递。第一行输入每个快递的重量。注:快递的体积不受限制。货车载重最大50000。如 5,10,2,11。第二行输入货车的载重量。输出最多能装多少个快递。快递数最多1000个。原创 2024-06-03 15:26:32 · 46 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-座位调整
给你一个整数数组 desk表示当前座位的占座情况,由若干 0 和 1 组成,其中 0 表示没有占位,1 表示占位。在不改变原有座位秩序情况下,还能安排坐几个人?第一行是个子数组表示作为占座情况,由若干 0 和 1 组成,其中 0 表示没有占位,1 表示占位。疫情期间课堂的座位进行了特殊的调整,不能出现两个同学紧挨着,必须隔至少一个空位。是不需要编写输入输出函数的。但是华为OD机考使用的是。JavaScript使用node的。,需要手动编写输入和输出。输出数值表示还能坐几个人。原创 2024-06-03 15:24:33 · 169 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-寻找连续区间,数组连续和
第一行的3表示第二行数组输入3个数,第一行的7是比较数,用于判断连续数组是否大于该数;组合为 3 + 4;3 + 4 + 7;都大于等于指定的7;给定一个含有N个正整数的数组, 求出有多少个连续区间(包括单个正整数), 它们的和大于等于x。第一行两个整数N x(0 < N转载 2024-06-03 15:22:39 · 173 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-寻找相同子串
t和p,要求从t中找到一个和p相同的连续子串,并输出该子串第一个字符的下标。是不需要编写输入输出函数的。但是华为OD机考使用的是。所以最好在牛-客上提前熟悉这种模式。其他: 使用String.indexOf方法。JavaScript使用node的。其他:使用String.indexOf。,需要手动编写输入和输出。其他: 使用find函数。原创 2024-06-03 15:19:27 · 232 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-字符统计及重排
【代码】华为OD机试2024(JS,C++,JAVA,PYTHON)-字符统计及重排。原创 2024-06-03 15:18:23 · 36 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-字符串摘要
第一个b非连续字母,该字母之后字符串中还出现了2次(最后的两个Bb) ,所以输出b2。对b2a3c0b2进行排序,最终输出a3b2b2c0。c非连续,该字母之后字符串再没有出现过c,输出c0。的摘要算法,请输出给定字符串的摘要值。一行字符串,长度为[1,200]a连续出现3次,输出a3,Bb连续2次,输出b2。原创 2024-06-03 15:17:07 · 427 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-字符串序列判定
是L=”abcde”的一个子序列且有效字符是a、c、e,而”aec”不是有效子序列,且有效字符只有a、e)S中的每个字符在L中都能找到(可以不连续),且S在L中字符的前后顺序与S中顺序要保持一致。S和L,都只包含英文小写字母。S长度原创 2024-05-29 10:10:09 · 52 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-字符串子序列II
给定字符串 target和 source,判断 target是否为 source 的子序列。字符串 source 可能会很长(长度~=500,000),而 target是个短字符串(长度原创 2024-05-29 10:09:05 · 50 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-字符串变换最小字符串
s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。变换规则:交换字符串中任意两个不同位置的字符。按照要求进行变换得到的最小字符串。一串小写字母组成的字符串s。s是都是小写字符组成。原创 2024-05-29 10:07:28 · 51 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-字符串分割转换
给定一个非空字符串S,其被N个‘-’分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。反之,如果它含有的大写字母比小写字母多,则将这个子串的所有小写字母转换为大写字母;大小写字母的数量相等时,不做转换。对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有。@中没有字母,连起来即12abc-abc-ABC-4aB-@子串为12abc、abCABc、4aB@,第一个子串保留,子串为12abc、abCABc、4aB@,第一个子串保留,原创 2024-05-29 10:06:15 · 42 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-字符串分割为水仙花数,水仙花数Ⅱ
"水仙花数"是指一个三位数,每位上数字的立方和等于该数字本身,如 371 是’水仙花数’,因为 371=3 3+7 3+1^3。3、若分割成功且分割结果唯一,则返回分割后子串的数目。给定非空字符串s,将该字符串分割成一些子串,使。2、若分割成功且分割结果不唯一,则返回-1;根据题目描述中情况,返回相应的结果。1、若分割不成功,则返回0;输入字符串的最大长度为200。值的和均为水仙花数。原创 2024-05-29 10:05:18 · 73 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-增强的strstr
char *strstr(const char *haystack, const char *needle) ,实现在字符串 haystack 中查找第一次出现字符串 needle 的位置,如果未找到则返回 null。现要求实现一个strstr的增强函数,可以使用带可选段的字符串来模糊查询,与strstr一样返回首次查找到的字符串位置。与strstr函数不同,返回的是源字符串中,匹配子字符串相对于源字符串地址的偏移(从0开始算),如果没有匹配返回-1。目标字符串中‘[]’必定成对出现,且不会出现嵌套。原创 2024-05-29 10:04:13 · 76 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-响应报文时间
题目描述中,有一个字段称作最大响应时间(Max Response Time),HOST收到查询报文,解析出MaxResponseTime字段后,需要在(0~MaxResponseTime)s )时间内选取随机时间回应一个响应报文,如果再随机时间内收到一个新的查询报文,则会根据两者时间的大小,选取小的一方刷新回应时间。最大响应时间有如下计算方式:当MaxRespCode < 128 ,MaxRespTime = MaxRespCode。原创 2024-05-29 10:02:39 · 56 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-告警抑制
告警抑制,是指高优先级告警抑制低优先级告警的规则。请根据原始告警列表和告警抑制关系,给出实际产生的告警列表。第一个告警A,能够抑制它的只有A0,而当前告警列表中没有A0,因此告警A可以正常发生。第二个告警B,能够抑制它的只有C,而当前告警列表中有C,因此告警B被抑制,不可以发生。A抑制了B,B抑制了C,最后实际的告警为A D E。第三个告警C,没有能抑制它的告警,因此正常发生。第四个告警D,没有能抑制它的告警,因此正常发生。第五个告警E,没有能抑制它的告警,因此正常发生。最后一行为告警产生列表,原创 2024-05-29 10:01:12 · 48 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-双十一最大花费金额
双十一众多商品进行打折销售,小明想购买自己心仪的一些物品,但由于受购买资金限制,所以他决定从众多心仪商品中购买三件,而且想尽可能的花完资金。金额23、26和27相加得到76,而且最接近且小于输入金额78。因为输入的商品,无法组合出来满足三件之和小于26.故返回-1。现在请你设计一个程序帮助小明计算尽可能花费的最大资金数额。原创 2024-05-29 10:00:10 · 50 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-单词重量
每个句子由多个单词组成,句子中的每个单词的长度都可能不一样,我们假设每个单词的长度Ni为该单词的重量,你需要做的就是给出整个句子的平均重量V。原创 2024-05-29 09:58:53 · 45 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-单词接龙
先确定起始单词word,再接以d开头的且长度最长的单词dword,剩余以d开头且长度最长的有dd、da、dc,则取字典序最小的da,所以最后输出worddwordda。先确定起始单词dword,剩余以d开头且长度最长的有dd、da、dc,则取字典序最小的da,所以最后输出dwordda。是不需要编写输入输出函数的。但是华为OD机考使用的是。所以最好在牛-客上提前熟悉这种模式。JavaScript使用node的。,需要手动编写输入和输出。原创 2024-05-29 09:58:04 · 63 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-分糖果
当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。小明最少需要多少次(取出、放回和平均分配均记一次),能将手中糖果分至只剩一颗。小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。是不需要编写输入输出函数的。但是华为OD机考使用的是。所以最好在牛-客上提前熟悉这种模式。抓取的糖果数(原创 2024-05-29 09:57:09 · 87 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-分割数组的最大差值
左数组 = [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。,分别表示左数组的和和右数组的和。,表示差值的最大取值,初始化为0。原创 2024-05-29 09:56:04 · 39 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-出错的或电路
不稳定,具体现象为计算两个二进制数的或操作时,第一个二进制数中某两个比特位会出现交换,交换的比特位置是随机的,但只交换这两个位,其他位不变。1、交换第1个比特和第2个比特,第一个输入数变为100,计算结果为110,计算结果不变。2、交换第1个比特和第3个比特,第一个输入数变为010,计算结果为110,计算结果不变。3、交换第2个比特和第3个比特,第一个输入数变为001,计算结果为111,计算结果改变。第二行有一个长为N的二进制数,表示与电路的第一个输入数,即会发生比特交换的输入数。第一行有一个正整数N;原创 2024-05-29 09:55:04 · 39 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-出租车计费,靠谱的车
出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。小明识破了司机的伎俩,准备利用自己的学识打败司机的阴谋。给出计费表的表面读数,返回实际产生的费用。一个数字,表示实际产生的费用。15表示实际产生的费用其实只有15块钱。81表示实际产生的费用其实只有81块钱。只有一行,数字N,表示里程表的读数。4表示实际产生的费用其实只有4块钱。100表示计费表的表面读数。17表示计费表的表面读数。原创 2024-05-29 09:47:36 · 94 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-冠亚军排名,奖牌榜排名
Name表示各个国家的名称和三个整数Gi,Si,Bi。表示每个获得的gold medal,silver medal,bronze medal的数量,以空格隔开,如(China 51 20 21),我们假设国家名称不超过二十个字符,各类奖牌数不超过100,且大于0.输出奖牌榜的依次顺序,只输出国家名称,各占一行,具体见样例输出。第一行输入一个整数N(0原创 2024-05-29 09:45:21 · 57 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-关联子串
str1和str2,如果字符串str1中的字符,经过排列组合后的字符串中,只要有一个字符串是str2的子串,则认为str1是str2的关联子串。str2包含str1的一种排列组合(“cab”),此组合在str2的字符串起始位置为5(从0开始计数)若str1是str2的关联子串,请返回子串在str2的起始位置;若str1是str2的关联子串,请返回子串在str2的起始位置;若str2中有多个str1的组合子串,请返回最小的起始位置。输入两个字符串,分别为题目中描述的str1、str2。原创 2024-05-29 09:44:27 · 38 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-停车场车辆统计
车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位(长度3)。特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。数组cars[],其中1表示有车,0表示没车,数组长度小于1000。统计停车场最少可以停多少辆车,返回具体的数目。整型数字字符串,表示最少停车数目。1个卡车占第5、6、7个车位。1个货车占第1、2个车位。1个小车占第1个车位。1个小车占第3个车位。1个小车占第9个车位。原创 2024-05-29 09:42:13 · 63 阅读 · 0 评论