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-02-15 18:10
我今天考的试题居然有两题和你的一样。第一题太激动忘了输入是可以一个一个byte读取的而不是直接处理字符串,理没使用stack😪;第二题和HJ65相近换个输出,没细题花了不少时间debug。
1 回复 分享
发布于 2022-02-15 23:09
楼主你好 可以在本地ide编码吗
1 回复 分享
发布于 2022-02-16 15:28
兄弟,机试有几道题?不同岗位考察一样吗
1 回复 分享
发布于 2022-02-20 21:56
第三题题目没看懂,输入4,4,下面是个4*5矩阵,然后要怎样连线?
1 回复 分享
发布于 2022-02-22 14:38
楼主,我想问一下华为机试可以提交多次吗
1 回复 分享
发布于 2022-03-22 12:52
华为武汉研究所OD招聘,有兴趣私聊~~
1 回复 分享
发布于 2022-03-24 14:54
第二题一样 ,leetcode原题,不知道为啥leetcode能通过,这边60还是80忘记了 // leetcode 判断 是否子序列 public boolean isSubsequence(String s, String l) {         if("".equals(s)){             return true;         }         char[] sc = s.toCharArray();         char[] lc = l.toCharArray();         int left = 0;         for (int i = 0; i < lc.length; i++) {             if (lc[i] == sc[left]) {                 left++;             }             if (left == sc.length) {                 return true;             }         }         return false;     } // 这边获取索引 public int isSubsequence(String s, String l) {         if("".equals(s)){             return 0;         }         char[] sc = s.toCharArray();         char[] lc = l.toCharArray();         int left = 0;         for (int i = 0; i < lc.length; i++) {             if (lc[i] == sc[left]) {                 left++;             }             if (left == sc.length) {                 return i;             }         }         return -1;     }
点赞 回复 分享
发布于 2022-02-15 23:16
借楼主面经分享,给我未来的候选人😜
点赞 回复 分享
发布于 2022-02-18 10:56
华为OD软件开发岗位!Base地杭州!团队直招,组内氛围好!感兴趣可以私信我!从简历到机试到面试一条龙服务!
点赞 回复 分享
发布于 2022-02-18 17:15
过没
点赞 回复 分享
发布于 2022-02-20 08:10
请问下楼主最后的分数是多少呀?这个是根据通过率计算的吗???
点赞 回复 分享
发布于 2022-02-21 10:32
最后过了没😁
点赞 回复 分享
发布于 2022-02-21 11:05
楼主力扣刷了多少题啊
点赞 回复 分享
发布于 2022-02-23 09:10
第三题dp机很好做,建立二维数组,如果当前格子为0,则dp为0,如果格子为1,则dp为上,左,左上的最大值加一,可以维护一个结果,每个格子判断,也可以后面遍历dp拿最大值
点赞 回复 分享
发布于 2022-02-23 18:04
华为OD招聘,同工同酬,杭州北京均可,有意者进
点赞 回复 分享
发布于 2022-02-24 09:09
留名+占位!
点赞 回复 分享
发布于 2022-02-24 15:17
华为od岗位,前端开发,后台开发,测试都招,工作地点:深圳南京杭州苏州等,成长快,机会多,平台大,技术强。承载中间件等多个技术强的关键岗位!。欢迎联系和推荐!
点赞 回复 分享
发布于 2022-02-24 17:07
自己写输入吗?用的啥平台啊?
点赞 回复 分享
发布于 2022-02-24 17:33

相关推荐

44 183 评论
分享
牛客网
牛客企业服务