首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

腾讯面试题解决方案

2012-09-10 
腾讯面试题最近腾讯来电话说我初试过了,但是很遗憾,通知得到的太晚了,都已经在新公司入职一天了。所以拒绝

腾讯面试题
最近腾讯来电话说我初试过了,但是很遗憾,通知得到的太晚了,都已经在新公司入职一天了。所以拒绝了腾讯的复试。
说不伤心那是假的,大公司谁都向往。

面试的职位是QQ安全管家部门
初试时,首先通过手机聊了一堆,问了线程、进程等很多问题,比如:多进程的线程同步、共享内存的用法等。

笔试题1:
struct student{
virtual void fun(){
  m_i = 0;
}
static int m_i;
};//...1
struct student{
void fun(){
m_i = 0;
}
static int m_i;
};//...2
int student::m_i = 0;
int _tmain(int argc, _TCHAR* argv[])
{
student *m_p = 0;
m_p->fun();
return 0;
}

1和2两种情况谁会崩溃
我的答案:1崩溃,2不会。原因1会根据m_p的指向的类型,再根据该类型的虚指针去虚函数获取函数指针,
可以写成该伪代码 :m_p->ptr->fun(),显然ptr是未知的崩溃。

笔试题2:
有个byte字节(8位) ,统计1的次数,如1011 0010 1出现的次数是4(最大限度的优化)
我的答案:
int i=0;
for(int j=0;j<8;j++){
if(_byte&1)i++;
_byte>>1;
}

最后就是上机题:
给个文件:文件里无数个单词,
用MFC编个对话框,在编辑框中输入字母,然后再下面的编辑框里能显示出最佳匹配的前100个单词
时间2小时

我的思路就是首先根据首字母读一次文件,将首字母符合的所有单词放入一个vector里,在根据排序需求对vector进行sort排序,根据后续的字母针对vector进行操作, 每次输出仅从vector里取前100个

做出来后,面试官问如果该文件里的单词已经排好序是否有其他更优方法,
当然有,空间换时间,对每个最近匹配的做个标记,开始标记、结束标记,

比如 以a开头的做个标记 以aa开头 以aaa开头的都做标记,有点类似于广义表的形式,大集合包含小集合,小集合再包含集合。

不过面试官离开时没说消息通知的时间,所以回去后就接受另一家公司的offer。
面试大公司就这点烦心,没小公司来的爽快。

在这里总结一下,给后来的面试者提供点经验- -

[解决办法]
最怕就是最后这种题
[解决办法]
知道用vector,就没想到用map,看来stl只是停留在用的阶段,慢慢来吧

如果你能明确的告诉他用map,而且map的具体实现是什么,估计立即就会告诉你复式时间
[解决办法]
我要面试,凡是让我答题,上机的,一律走人,哈哈

谢谢楼主分享
[解决办法]
第二题用查表法怎么样……时间复杂度为O(1)……
[解决办法]
没明白.
student *m_p = 0;
没有实力化,为什么没挂?
[解决办法]
小鸟飞一下,高手啊
[解决办法]
多写楼主了。
[解决办法]
笔试题2:
可以单核并发算。logn

[解决办法]
第一个不知道为什么?
第二个我觉得这么写不知道怎么样:
while(byte)
{
count += byte & 1;
byte=byte >> 1;
}
第三题,不知道什么是最佳匹配,我觉得是不是应该两个单词的最长公共子序列越大,匹配越佳啊。
[解决办法]
第二题8楼意见不错,空间换时间。8bit的数据量也不是很大。
[解决办法]
笔试题2
int count=0;
while(byte)
{
byte&=byte-1;
count++;
}
[解决办法]
第二题是老题目了.

[解决办法]
第二题
count = 0;
while( byte )
{
 byte &= ( byte - 1);
 count ++;
}
[解决办法]
用multimap 遍历一次文件 对每个单词进行匹配 用得到的权值作为键值 然后对键值排序 得到每个键值的键的个数 然后去前面一百个就行了 仅仅是个人看法
[解决办法]

探讨

我要面试,凡是让我答题,上机的,一律走人,哈哈

谢谢楼主分享

[解决办法]
谢谢LZ分享经验
[解决办法]
学习。。。
------解决方案--------------------


抢个座!
[解决办法]
第3题用Trie字典树不知道可以么,建树时间好长
感觉应该可以
[解决办法]
我觉得应该用字典树,当输入如ab字母时,查找以ab为前缀的前一百个单词便可,开始时只创建一次树,后面的就都是在树中查找了,这个应该可行

热点排行