您的位置:首页 > 其它

2009.10.18百度技术笔试题

2009-10-18 19:33 127 查看
一。简述链表和数组各自的优缺点。
二。程序题,程序大概如下,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
[20])
{
int f
;
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");
}
}
}

三。魔术师抽出16张牌,红心A,4,Q;黑桃J,8,4,7,2,3;草花K,4,Q,5,6;方块A,5。然后魔术师从中随意抽出一张牌,叫两观众上去,将点数告诉了观众甲,将花色告诉了观众乙。
甲:我不知道这张牌。
乙:我知道你不知道这张牌。
甲:我知道这张牌了。
乙:我也知道了。
请问从这四句话中你能判断是哪一张牌?

四。用递归和非递归的方法写出树的先序遍历,需为可执行的代码。
给出结点定义
struct tree
{
int data;
tree *left, *right;
};
typedef struct tree node;
typedef node *Bitree;
为了方便coding,给出Stack栈操作,push(pNode);pop();

五。一个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)当矩阵很大到无法加载到内存,写出解决办法。

六。给出了一些条件,具体忘了,大概有这些:

1.一个系统要接受用户请求,用户请求为32字节,其中第一字节为优先级,后31字节为请求内容,是字符格式。

2.由于系统处理复杂,所以同时处理的请求有限,但是还好系统可以保存请求,并且请求过的请求,再次请求可以直接返回,不用处理

3.请求优先级总共16级,要求高级的请求总是先于低级的请求,同一级的请求中,请求次数多的现处理

问题是:

(a)基于此要写一个任务管理调度器的核心算法,

(b)写出数据结构

(c)如果任务管理调度器的容量设计为20万,请计算需要的空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: