本文主要是介绍2024华为OD机考面试经验分享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
什么是华为OD?
华为OD因为还是外包性质,相对正编来说要轻松一些。(前提是你不想去卷A绩效),一般情况可以八九点就溜下班。然后工作环境的话,和正编一样。
很多小伙伴其实都是从大城市想回老家,所以才选的华为OD吧,东莞/西安/成都 这几个地方超级卷。
面试流程
机考
(三道编程题150分钟/两道简单题(每道100分)+一道中等难度题(200分))
考试在牛客网答题,按照HR发你的考试攻略,在牛客网刷刷输入输出类的题目。
北京地区要求300分过线,其他地区200多分就可以去干外包项目了。
性格测试
机考过了HR第二天就会联系你,给你发性格测试攻略。
牛客网做题攻略
参加考试前,需要充分了解牛客网答题的方式,如何测试,提交代码等等,否则你直接去考试会很懵逼。
下面提供一些示例:
题库连接
牛客题库
牛客网输入输出问题
- 题目提到的输出需要使用console.log(),多行输出只要循环console.log()即可。
- 特定行数的输入,需要自己用变量记录,然后使用变量编程实现
- 程序readline读到的行内容是字符串,需要自己转换为number
- 可以使用自测输入,来调试并且查看用例通过数量
输入为一行
输入:为一行,只包含小写字母的字符串
输出:该字符串反转后的字符串
const readline = require('readline');const rl = readline.createInterface({input: process.stdin,output: process.stdout
});
rl.on('line', function (line) {// 使用 console.log() 代替 returnconsole.log(line.split('').reverse().join(''))
});
有确定行数的输入
描述
写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
数据范围:
1 ≤ n ≤ 1000
输入描述:
第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。
输出描述:
输出输入字符串中含有该字符的个数。(不区分大小写字母)
const readline = require('readline');const rl = readline.createInterface({input: process.stdin,output: process.stdout
});
const arr = []
rl.on('line', function (line) {arr.push(line)if (arr.length === 2) {const obj = {}arr[0].toLowerCase().split('').forEach(item => {if (obj[item]) {obj[item] += 1} else {obj[item] = 1}})console.log(obj[arr[1].toLowerCase()] || 0)}
});
输出为间接确定行数
输入:
3
2
2
1
输出:
1
2
说明:
输入解释:
第一个数字是3,也即这个小样例的N=3,说明用计算机生成了3个1到500之间的随机整数,接下来每行一个随机数字,共3行,也即这3个随机数字为:
2
2
1
所以样例的输出为:
1
2
const readline = require("readline");const rl = readline.createInterface({input: process.stdin,output: process.stdout,
});let lineNum = 0;
let count = null;
const result = [];
rl.on("line", function (line) {if (lineNum === 0) {lineNum++;count = parseInt(line);} else {result.push(line);if (result.length === count) {function unique(arr) {let result = [];for (let i = 0; i < arr.length; i++) {if (result.indexOf(arr[i]) === -1) {result.push(arr[i]);}}return result;}const uniq = unique(result).sort((a,b) => a-b);uniq.forEach(item => console.log(item))}}
});
规定好方法名和变量名的
JZ69 跳台阶
选择JavaScrip Node环境
/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param number int整型 * @return int整型*/
function jumpFloor( number ) {// write code hereif (number <= 2) return numberreturn jumpFloor(number-1) + jumpFloor(number-2)
}
module.exports = {jumpFloor : jumpFloor
};
二叉树前序遍历
https://www.nowcoder.com/practice/5e2135f4d2b14eb8a5b06fab4c938635?tpId=295&tqId=2291302&ru=/exam/company&qru=/ta/format-top101/question-ranking&sourceUrl=%2Fexam%2Fcompany
输入:{1,#,2,3}
返回值:[1,2,3]
输入会为你构建成树。
/** function TreeNode(x) {* this.val = x;* this.left = null;* this.right = null;* }*/
/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param root TreeNode类 * @return int整型一维数组*/
function preorderTraversal( root ) {// write code herelet result = []function traverse(node) {if (!node) returnresult.push(node.val)traverse(node.left)traverse(node.right)}traverse(root)return result
}
module.exports = {preorderTraversal : preorderTraversal
};
这篇关于2024华为OD机考面试经验分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!