苏州乐贝上海分公司面试分享

827 阅读4分钟

电话面试

略,一些的项目经验方面的问题,没什么分享价值。

笔试(共三道题目)

  1. 两个有序整数数组求交集,语言不限。
    这个题目很简单,网上全是各自答案。设置两个数组的下标i =0,j = 0,从头到尾扫描两个数组中数是否相同,如果不同,较小的数靠后移位,如果相同,则两个下标同时后移,直到其中一个下标到了末尾,则结束。

    如果是求无序整数数组的交集方法则有很多,可以先用堆排序、快速排序、插入排序、归并排序等方法排好顺序,然后问题转为两个有序数组求交集,时间复杂度为O(nlgn),空间复杂度为O(1)。另一种方法,可以对其中较短的数组建hash表,然后对较长的数组查找在hash表中是否存在,时间复杂度为O(1),空间复杂度为O(min(N,M))
  2. 简化以下Swift代码
    let animals = ["fish", "cat", "chicken", "dog"] let sortedAnimals = animals.sort { (one: String, two: String) -> Bool in return one < two }
    答案为:let sortedAnimals = animals.sort(<)(具体推导过程网上可以查到,Swift我也不熟,所以笔试时该题目没有做出来,汗颜)
  3. 谈谈个人对Flutter和RN的理解(有相关项目经验的也可以写一下)
    本人没有做过混合开发,所以没有写,空着。

    第一题算法题在考察一些最简单的算法基础,只要刷过一些算法题就能做出来;第二题代码简化题考察语言的掌握程度,如果没做过Swift的人是完全不会,也就是说他们项目组招聘人才要求掌握Swift;第三题表示他们需要做过混合开发的人才,很抱歉我并不是。

一轮面试

全程没有问与知识点有关的问题,问的都是简历上写的项目点,就是在了解你做过的项目。没有分享价值,故不做记录。

二轮面试

二轮面试见到了他们的客户端leader,主要就问了一个问题(该问题也是他们项目组当前困扰一段时间的问题,感觉他们的面试有套经验的嫌疑,哈哈):
一个独立的H5页面(该H5界面有支付功能,之前是展示在浏览器上),要展示在iOS移动端app上,如何在H5不做任何移动端适配的情况下,让该H5界面集成app的账号体系,也就是H5使用APP的token等参数发起网络请求。

这个问题是想原生客户端拦截内嵌H5页面的网络请求,并对相应数据进行修改。UIWebView确实可以做到修改url,但是WKWebView拦截url貌似是有缺陷的。
这个问题我暂时没有相到好的解决方法。

不过这个问题感觉比较奇怪,APP内嵌H5感觉通过与原生交互获取原生的账号体系数据,然后H5将这些数据作为参数发起请求会比较合理。
H5发起了请求,然后原生还去修改请求,感觉这个问题存在的场景比较诡异,只适用于项目快速迭代过程中使用,并不是长久之计。

总结

二面草草结束了,感觉他们需要掌握Swift、做过混合开发等的人才,很抱歉我不是,并没有满足他们的要求。

最后说说通过总共一个半小时的笔试和面试,我对苏州乐贝上海分公司客户端开发的看法吧。首先感觉该部门客户端才刚刚起步,完整的客户端与H5的交互流程都没有建立。其次该部门客户端和前端的开发工作完全分开,其实我个人认为客户端和前端开发同属于大前端这一范畴,客户端开发人员应该熟练掌握前端的开发技术,毕竟原生客户端开发成本太高,APP内嵌H5可能是未来的趋势。

明天会去当面面试同花顺公司,后天会电话面试高德地图,到时候再分享这两家公司的面试经历。