基本信息
- 岗位:钉钉团队C++研发
- Base:杭州
面试信息
- 形式:钉钉视频通话+伯乐系统写题
- 时间:8.5
面试问题
- 聊天:自我介绍,项目介绍,技术栈,为什么没实习,优缺点,岗位意向
- 设计模式
- 介绍一下常见的开发语言
- 写题(最诡异的来了):先出了一道字符串按单词反转,我说一面写的就是这个题,他说不是啊,然后说看看,似乎才第一次打开一面报告;然后调出代码,问我为什么用栈,我说从写的方便和时间复杂度考虑(存在连续多个分隔符,原址反转的删除要移动后面所有内容),不借助栈也可以写一个从后往前扫直接加入的,又问了多个连续分隔符的处理逻辑。然后感觉面试官这时候就不太高兴,说,那我们再写一题,出了道链表反转(给定 Node* reverse(Node* root) ),写完说,具体逻辑我就不看了,我看到你new了新节点,为什么没有delete,我:???因为给定返回Node*,就是要创建新链表返回,原链表可能还有用,不应当释放,应该在函数外处理,当然如果需要原址反转也可以写,需要写吗?面试官说,不用了,那如果传入一个空节点,你的代码会有什么问题?我说处理过了,没问题,就返回nullptr。他说,那你这个执行一百万次不会导致内存占满吗?我说,这个算法本身就是不断创建新的,当然会,如果您需要写原址反转的话也可以写。他说,嗯,异常处理用过吗,你的代码会不会出问题执行到哪一行突然终止?我说,这个算法还是比较健壮的,正常情况下不会。然后写题就结束了。
- 最后一个问题:如果一个非析构函数写了delete this会怎么样,我说没有遇到过,但是直觉是运行完以后再尝试访问这个实例的成员可能报错(后来查了下确实是)
结果
- 面完一周后没有任何说法
- 钉钉问了下HR,第二天(8.12)收到感谢信
总结
- 参加的7.31的那场笔试,A1.9/2,感觉还可以(那场似乎还蛮难的),然后一面面试官很满意,还和我介绍了半天他们的部门,让我收到其他offer先慎重考虑,他们这里发展前景很好,然后二面整个过程就感觉非常奇怪(基本没有技术问题,不知道面试官到底想了解些什么,写题这个过程讨论地也非常诡异,把一个算法题聊得像工程一样),最后果然还是挂了QAQ
全部评论
(6) 回帖