|
本帖最后由 cindyeee 于 2009-10-22 16:19 编辑
今天笔试完,肯定得被鄙视了,不过主要是自己基础不好的原因。第一次笔试,打击度还好,能给自己提个醒该好好看书了。
我笔试的是质量部,我们那屋参加笔试的部门总共有四五个吧,除了运维部和上海研发中心的另用一套试卷外,其余几个部门都是RD-2卷。
技术类的两个屋子,我们那屋有一百九十多人,差不多八九十人左右是笔试质量部的,上海研发中心就4个人。
题目难度我觉得比前些日子考过且网上已流传出的那些题要容易,只可惜自己平时不用功没学好。感觉百度的题考数据结构的知识蛮多的。
题目大致记得如下吧,细节地方肯定有错误之处,仅仅供大家参考下了啦,反正百度也没要求签啥保密协议的。
(1)简述链表和数组各自的优缺点。
(2)程序题,程序大概如下,a为一个字符串数组,字符串中每个字符都是介于'a'到'z'的小写字母,且字符串长度不超过20。
(a)描述bbb函数的功能(可用一句话)。
(b)假设N=7,且a={"cafe","baidu","recuit","thisone","iseasy","*******","*****"}(有两个字符不记得了....),写出输出结果。
(c)写出bbb函数的时间复杂度(用N表示)。
(d) 好像是bbb函数优化提高算法效率之类的。
int aaa(char* b1,char* b2)
{
char g[26];
int i;
for(i=0;i<26;++i)
g=0;
for(i=0;i<26;++i)
g[b1-'a']++;
for(i=0;i<26;++i)
g[b2-'a']--;
for(i=0;i<26;++i)
{
if(g)
return 0;
}
return 1;
}
int bbb(char a[N][20])
{
int f[N];
int i,j;
for(i=0;i<N;i++)
f=0;
for(i=0;i<N;i++)
{
if(!f)
f=1;
printf("%s",a);
for(j=i+1;j<N;j++)
{
if(aaa(a,a[j]))
{
f[j]=1;
printf("%s",a[j]);
}
printf("\n");
}
}
}
(3)魔术师抽出16张牌,红心A,4,Q;黑桃J,8,4,7,2,3;草花K,4,Q,5,6;方块A,5。然后魔术师从中随意抽出一张牌,叫两观众上去,将点数告诉了观众甲,将花色告诉了观众乙。
甲:我不知道这张牌。
乙:我知道你不知道这张牌。
甲:我知道这张牌了。
乙:我也知道了。
请问从这四句话中你能判断是哪一张牌?
(4)用递归和非递归的方法写出树的先序遍历,需为可执行的代码。
给出结点定义
class tree
{
public:
int data;
class tree *left, *right;
};
typedef class tree node;
typedef node *bitree;
为了方便coding,给出stock栈操作,push(PNode);pop();
(5)一个M*M的矩阵A,一个字符串数组S,比较S中的字符串是否在A中的连续对角线序列 ** 现。
譬如一个4*4的矩阵 1 2 3 4
a b c d
5 6 7 8
e f g h
则其连续对角线从左算:1 2 a 5 b 3 4 c 6 e f 7 d 8 g h
或 1 a 2 3 b 5 e 6 c 4 d 7 f g 8 h
从右算:4 3 d 8 c 2 1 b 7 h g 6 a 5 f e
或 4 d 3 2 c 8 h 7 b 1 a 6 g f 5 e
(a)(b)两问,大概是写出优化高效的算法,不一定要程序,可用流程图或者文字描述,简述算法原理,计算时间复杂度。
(6)给出了一些条件,基于此要写一个任务管理调度器的核心算法,数据结构(前两问),第3问是啥不记得了。 |
+10
|