• 腾讯笔经 - [笔经面经]

    2010-10-10

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://wingszero.blogbus.com/logs/77681532.html

    职位:软件开发(客户端方向),卷子和后台一样

    人数:200+,后台更恐怖,2倍。虽说腾讯口碑一直平平,但招起人来其号召力绝对是国内互联网公司NO.1.

    题目形式:单选:20×3+程序填空:10×4.

    有附加题,第一道压缩算法,不会;第二第三道是信息安全的同学做的,我肯定也不会。附加题不算进总分。

    单选:

    覆盖面比较广,但侧重点还是比较明显:

    考C不考C++,操作系统考得最多(CPU占用率,内存管理就有3,4道选择,出题者是内存帝),网络只有一道,数据结构必考的但很水,比如快排,二叉查找树,树的先中后序遍历。

    有几道不会:

    1 给出几个结构体求sizeof的,考字节对齐问题。

    2 内存地址的3级索引。我OS都顾着看多线程和虚存了。。。

     

    编程填空:

    第一道:

    N个工人N项任务分配,每个工人不同任务所需时间不同,用回溯法求最小总用时。

    由于是程序填空,所以不是考你的编码能力,而是读程序的能力。

    这道题的代码个人觉得写得很不好,有很多可以优化的地方,而且有个空我死活想不出该填什么,因为不填其实是没错的。。。。。

    其实这道题换左是ACM,就是一道经典的最优匹配问题。回溯实际上是O(N!),最优匹配用KM解可以降到O(N^4)甚至是O(N^3).

    第二道:

    个人觉得第二道比第一道水。

    就是读一个类似这样的字符串:a(b(c,d),e,f(g,h,j)). a代表根,括号里面的是各自的子树。

    要求:读入字符串,构造树,并对树进行遍历,输出原子符串。

    原程序的maketree用的是递归,注意新建一个结点不能用new,因为这是C不是C++,要用malloc.

    eg: s=(NODE*)malloc(sizeof(NODE));

    我不知道这里改卷子会不会卡掉new,但malloc才是正解,我也差点被阴了。

    (后来面试时看到笔试卷子的批改,new并没有算错,可能new深入民心了。但为求保险,大家最好还是熟悉C的一些用法。)

    遍历很简单,就先序遍历没什么悬念的。

    总结:

    1 这份题完全不考C++和windows编程令我有点意外,可能是为了兼容后台开发的卷子。

    2 操作系统比想象中考得多,虽然都不难,但一点要注意细节。

    3 程序填空考的就是细心,和质疑能力。比如为什么这里要这样写,而不能那样写。有时你觉得差不多,就是满分和0分的区别。

    4 题目看上去很多,实际上时间很充裕。我考的时候状态比较不好,脑袋钝钝的,可能也是过分谨慎的缘故吧。所以大家笔试关键是认真做,不要图快,要图精确率。

     

     

     


    收藏到:Del.icio.us