华为软开—操作系统开发工程师一面、二面面经
【一面时间】2021.09.14 9:00
- 自我介绍。
- 问项目。(问了大量单片机的问题。。。)
- 手撕代码:
输入:两个二进制字符串,字符串只包含 ‘0’ 和 ‘1’ ,且没有前导0。
输出:输出两个字符串的和(二进制形式)。
示例:输入:a = "1010",b = "1011"。输出:“10101”。 - 反问。
面试官的麦克风有问题耽误了十几分钟时间。
- 面试官说看了一面的评价,问我单片机跑的什么操作系统?(并没有跑操作系统。。。)
- 操作系统有了解过吗?(有的。然后面试官就没问了???)
- 面试官说看了一面的评价,觉得基础还可以,就直接简单点,写道题吧!
题目描述:
给定四个数,分别为3,8,3,8,该如何用加、减、乘、除(不是取整除)等运算符计算出24(数字位置可调整)? (面试官问有什么思路吗?我说用回溯吧。如果人来计算,怎么算?没想出来,面试官给出答案:8 / (3 - 8 / 3)。
更一般地,给定由四个整数组成的数组 n[4],假设每个数都小于等于10,该如何通过程序计算得出24点?输出为代表运算式的字符串,如果无法得出24,则输出字符为 “Impossible”。
示例:
输入:n[4] = [1,2,6,7]
输出:(1+7)*(6/2)
让我自己先写,他闭麦。。。我想用回溯来写,写了大概二十多分钟还没写完,面试官就打断了我,说大概思路他清楚了,让我讲讲。讲完他说这样太暴力了,有没有优化的方法?我说类似二分法把24点拆成两个因数?他说算是一种方法,自己面试结束把它实现。
然后二面就结束了,给了通过。。。
【总结】
一面面试官看我的项目是偏硬件和控制,就问了大量单片机的内容,可是我都不太会啊。。。计算机基础一个没问,麻了。。。好在给的题目简单,不然怕是一面都过不了。
二面面试官就很直接了,也不问啥技术问题,直接上来给你怼一道难题,给我整麻了。。。
总体面试体验还可以,面试官都挺和善的,也会帮你解答不会的问题。
#华为面试##华为##面经#