20220215 华为 OD 机试

华为 OD 机试

第一道题

第一道是快乐消消乐,就是给定一个字符串将相邻的两个字符进行消除,最后返回消除后字符串的总长数
例子: ggA, 结果 1
消除 gg 后剩下 A ,因此最后结果 1
例子2:abccbe,结果 2
消除 cc 后字符串变成 abbe 在消除 bb,变 ae,因此结果 2
解法:
前面一直没有看到例子2,走了很多弯路,一开始理解成了消除重复字符,浪费了一些时间 =-=!
我的解法是使用栈,在循环字符时查看栈顶是否跟当前字符相同,相同栈顶字符弹出,开始循环下一个,若不相等则压入栈中
最后结果是 90% 的通过率


第二道题

第二道题是给两个字符串,targe,和 source,查找 targe 是否由 source 删除某些字符得到的,是返回开始的最大下标,否返回 -1
例子:
输入:
abc
abcaybec
结果为 3
解释:abc 可以由下面 abcaybec 删除 aybec 和 abcye 而来,删除 abcye 是最后的这个组成的 a 在下标位置 3 下,因此返回 3
解法
我的解法就是类似穷举了
以上面举例,首先找到每个 a 在 abcaybec 起点的位置的,然后遍历起点位置找,遍历到终点,若有符合顺序的记录下来并,最后取记录了位置的最大的起点位置
最后结果是 80% 的通过率


第三道题

第三题是今典题目,就在二维数组中取连线最大的,(好像是 leetcode 的青蛙跳?),可以前后左右对角线的连接取最大值
输入
4 4
1 0 0 0 1
1 0 0 1 1
1 1 1 0 1
1 1 1 1 0
结果 4
解释对角线 4 个 0
解法:
用了动态规划但我的条件边界没有处理好,最后时间到了,最后这题的通过率才 50%

以上就是本次的机试经验

#Java求职##华为##笔经#
全部评论
原题在哪,没地方测试通过率啊😥 import java.util.Scanner; public class shiyan {     public static void main(String[] args) {         Scanner in = new Scanner(System.in);         while (in.hasNext()) {             String s1 = in.nextLine();             String s2 = in.nextLine();             int max = -1;             for(int i = 0;i<s2.length();i++) {                 if(s1.charAt(0) == s2.charAt(i) && method(s1,1,s2,i+1) && i>max){                     max = i;                 }             }             System.out.println(max);         }     } //对于满足第一个字符相同的索引进行判断     public static boolean method(String s1,int index1,String s2,int index2){         if(index1 == s1.length()){             return true;         }         if(index2 == s2.length()){             return false;         }         if(s1.charAt(index1) == s2.charAt(index2)){             return method(s1,index1+1,s2,index2+1);         }         else{             return method(s1,index1,s2,index2+1);         }     } }
2 回复 分享
发布于 2022-02-22 22:44
楼主,我想问一下华为机试可以提交多次吗
1 回复 分享
发布于 2022-03-22 12:52
第三题题目没看懂,输入4,4,下面是个4*5矩阵,然后要怎样连线?
1 回复 分享
发布于 2022-02-22 14:38
兄弟,机试有几道题?不同岗位考察一样吗
1 回复 分享
发布于 2022-02-20 21:56
楼主你好 可以在本地ide编码吗
1 回复 分享
发布于 2022-02-16 15:28
我今天考的试题居然有两题和你的一样。第一题太激动忘了输入是可以一个一个byte读取的而不是直接处理字符串,理没使用stack😪;第二题和HJ65相近换个输出,没细题花了不少时间debug。
1 回复 分享
发布于 2022-02-15 23:09
是春招么
1 回复 分享
发布于 2022-02-15 18:10
第一题消消乐,abbaaba,要先消中间的aa,想不出用什么算法,求指点
点赞 回复 分享
发布于 2022-04-23 17:32
你好,请问机试是在线考试还是现场考试。
点赞 回复 分享
发布于 2022-04-01 23:42
你说的是消除相邻2个,如果是abcccbe,消除完了应该是abbe(第一和第二个C先消除,没有C可以和第三个消除)还是abcbe(连续相同的直接全部消除)?这两种算法不一样啊
点赞 回复 分享
发布于 2022-03-10 20:32
想问下第一题如果输入是fdfdddf,那结果5和2哪个应该是正确的,机试对题意有疑问的可以现场咨询吗?
点赞 回复 分享
发布于 2022-03-10 13:12
我感觉楼主运气挺好的,我看了好多帖子,好像你这三道题是最简单的
点赞 回复 分享
发布于 2022-03-01 19:21
华为OD招聘,同工同酬,机会多多,有意者进
点赞 回复 分享
发布于 2022-02-25 16:28
自己写输入吗?用的啥平台啊?
点赞 回复 分享
发布于 2022-02-24 17:33
华为od岗位,前端开发,后台开发,测试都招,工作地点:深圳南京杭州苏州等,成长快,机会多,平台大,技术强。承载中间件等多个技术强的关键岗位!。欢迎联系和推荐!
点赞 回复 分享
发布于 2022-02-24 17:07
留名+占位!
点赞 回复 分享
发布于 2022-02-24 15:17
华为OD招聘,同工同酬,杭州北京均可,有意者进
点赞 回复 分享
发布于 2022-02-24 09:09
第三题dp机很好做,建立二维数组,如果当前格子为0,则dp为0,如果格子为1,则dp为上,左,左上的最大值加一,可以维护一个结果,每个格子判断,也可以后面遍历dp拿最大值
点赞 回复 分享
发布于 2022-02-23 18:04
楼主力扣刷了多少题啊
点赞 回复 分享
发布于 2022-02-23 09:10
最后过了没😁
点赞 回复 分享
发布于 2022-02-21 11:05

相关推荐

自由水:这HR已经很好了,多的是已读不回和不读了
点赞 评论 收藏
分享
秋盈丶:后续:我在宿舍群里和大学同学分享了这事儿,我好兄弟气不过把他挂到某脉上了,10w+阅读量几百条评论,直接干成精品贴子,爽
点赞 评论 收藏
分享
评论
44
183
分享

创作者周榜

更多
牛客网
牛客企业服务