上个星期一面试了字节跳动-前端工程师-飞书岗位,所以写下这篇面经以供大家参考
- 自我介绍不必多说,面试官首先让我介绍了自己简历中写的两个项目经历,希望我将包括角色,职责等一些做一个比较详细的介绍
- 紧接着便是算法题,问我常用什么语言比较多,我通常用Java来解算法题,但因为面试的前端岗位于是说可以用JS来解题
- 第一题如下:
const node{
value=10,
child{value=11,child{value=xx,child{}...},child{},child{}...}
child{value=12,child{},child{},child{}...}
...
} - 题目大概是这么个意思,在node对象中有value和child两个值,child中不断嵌套child且不知道数量,要求是把所有的value都取出来。对于一个算法不怎么白但其实又很白的人来说是有点懵的,于是挣扎了一番之后向面试官表达了自己不会的点,面试官很nice询问了我困惑的点然后提醒我你写了一个循环尝试去取值但是不知道child到底有多少个,是不是可以尝试用循环来创建循环来不停的对应他的child。后来跟群友交流的有人也是这题,他的思路是先解析刀数组中然后取出指定的,然后组装回去(群友原话),供大家参考。
- 第二题如下:
1.abcdefg
2.cde
3.abcddcdefg - 给出了字符串1和2,问我怎么在1中查找2,并返回第一个字符的下标。这题面试官出的简单(可能是看我上一题不会吧哈哈哈),于是下意识用for加if做一个循环判断,写完了向面试官分享了解题思路。
于是给出了字符串3,问我按照我前面的方法,判断第一个“cd”时,第三个字符为d不成立,但是我们已知第二个字符是d不是c,所以是否跳过d直接从第三个d开始判断,让我修改算法。后来想了想这个字符串cde的位置排在中间,算法中其实没有对cde排在末尾进行一个探讨以防出现下标越界,思路还是不够严谨。
还一个思路便是可以用indexof把字符每三个算作一个选出存在数组中,然后做一个对比判断, - 接着问了下知不知道计网中的TCP/IP模型,有几层,为什么要分层有什么作用,选了一个层问我他的作用。
- 最后回到项目上,问我在开发过程中有没有遇到什么问题,都是怎么解决的。
- 最后向面试官询问问题,问了下是比较看重算法还是前端的基础知识,回答说这个不太确定,每个面试官的喜好都不太一样,算法题也不看重结果主要看你过程中的思考和解题思路。
以上便是我面试的过程,希望对大家有帮助
全部评论
(3) 回帖