华为od2022Q4机试经验
第一题:给定一串字符串
,比如how are you。
1、把每个单词内部的每个字母用字典序重新排序。
2.单词重新排序,也是字典序,但是如果有重复的单词,次数越多越靠前,其他的靠后。
解法:思路,用原生api sort()方法就可以实现,
1先建立一个字符串数组,
2循环遍历,遇到空格就把前面的部分截取为char数组用sort排序,放入建立的数组,
3最后根据条件对该数组排序。
4输出
很可惜机试只能用JavaScript node,我不会写输入,最后只能用java写,最坑的是我最后做的第一题,没来的及写完。
二、
废话半天意思就是有个人要住酒店,有自己期望的价格x,需要选几个接近期望的酒店价格
然后给定一个数组是几个酒店的价格;
输入第一行就是数组长度length 期望数组长度 期望值;
同时规定如果答案的左右两边和期望差值相等,且区间只能取一边时,取小的。
第二行是酒店价格的数组;
思路:
先排序,
然后找最接近的值,
定义两个量,一个左边界,一个右边界
最后全是if else,又是判断左边会不会到0,又是右边会不会越界,后面头晕了,估计少判断了几种情况。只通过了百分之73。
第三题 考二叉树
就是给了个邻接矩阵,求不可达的个数。
输入第一行是矩阵的行数
第二行开始矩阵,
思路很清晰,结果当时脑子抽了,没用二叉树遍历,直接在输入的每一行判断可达,最后只通过了百分之60。。。
可惜没提前准备一下js node的输入语法,不然根本不会浪费很长的时间理解java的api。如果是前端的同学一定要看看node的输入怎么写
#华为机试,emo了#
,比如how are you。
1、把每个单词内部的每个字母用字典序重新排序。
2.单词重新排序,也是字典序,但是如果有重复的单词,次数越多越靠前,其他的靠后。
解法:思路,用原生api sort()方法就可以实现,
1先建立一个字符串数组,
2循环遍历,遇到空格就把前面的部分截取为char数组用sort排序,放入建立的数组,
3最后根据条件对该数组排序。
4输出
很可惜机试只能用JavaScript node,我不会写输入,最后只能用java写,最坑的是我最后做的第一题,没来的及写完。
二、
废话半天意思就是有个人要住酒店,有自己期望的价格x,需要选几个接近期望的酒店价格
然后给定一个数组是几个酒店的价格;
输入第一行就是数组长度length 期望数组长度 期望值;
同时规定如果答案的左右两边和期望差值相等,且区间只能取一边时,取小的。
第二行是酒店价格的数组;
思路:
先排序,
然后找最接近的值,
定义两个量,一个左边界,一个右边界
最后全是if else,又是判断左边会不会到0,又是右边会不会越界,后面头晕了,估计少判断了几种情况。只通过了百分之73。
第三题 考二叉树
就是给了个邻接矩阵,求不可达的个数。
输入第一行是矩阵的行数
第二行开始矩阵,
思路很清晰,结果当时脑子抽了,没用二叉树遍历,直接在输入的每一行判断可达,最后只通过了百分之60。。。
可惜没提前准备一下js node的输入语法,不然根本不会浪费很长的时间理解java的api。如果是前端的同学一定要看看node的输入怎么写
#华为机试,emo了#