会员中心     
首页 > 资料专栏 > HRM > 人力资源 > 面试甄选 > 阿里巴巴20XX校招软件笔试题经典(含答案)DOC

阿里巴巴20XX校招软件笔试题经典(含答案)DOC

yjxykj
V 实名认证
内容提供者
资料大小:8KB(压缩后)
文档格式:DOC(3页)
资料语言:中文版/英文版/日文版
解压密码:m448
更新时间:2024/12/27(发布于湖南)

类型:积分资料
积分:8分 (VIP无积分限制)
推荐:免费申请

   点此下载 ==>> 点击下载文档


文本描述
阿里巴巴2015校招软件笔试题经典
写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。
int Max(bitree * root)
{ if(root==NULL)return 0;
else{ if(root->data>max) max=root->data;
Max(root->lchild);
Max(root->rchild);
}
return max;
}
int Min(bitree * root)
{ if(root==NULL)return 0;
else{ if(root->datadata;
M(root->lchild);
M(root->rchild);
}
return min;
}
int main()
{ bitree *root;
root=creatbitree();
printf("最大值与最小值之差为:\n");
printf("%d",abs(Max(root)-Min(root)));
return 0;
}
2、给定一个query和一个text,均由小写字母组成。要求在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度。例如, query为“acbac”,text为“acaccbabb”,那么text中的“cba”为最长的连续出现在query中的字母序列,因此,返回结果应该为其长度3。请注意程序效率。
#include "stdio.h"
#include "string.h"
#define N 100 int GetMaxCommStr(char *s1,char *s2,char *s3)//s1、s2 为要对比的俩个字符串,
{ //s3用来存储最大的公共字符串
// char *s1=stra, *s2=strb;
char len1 = strlen(s1);
char len2 = strlen(s2);
char maxlen = 0;
char i,j,r1;
for( i = 0; i < len1; i++)
{
for(j = 0; j < len2; j++)
{
if(s1[i] == s2[j]) //找到了第一个相等的
{
char as = i, bs = j, count = 1; //保存第一个相等的首地址
while( (as+1count++;
if(count > maxlen) //如果大于最大长度则更新
{
maxlen = count;
r1=i; //存储公共子字符串的起始位
}
}
}
}
if (maxlen>0) //有公共子字符串
{
for(i=0;i{
*(s3+i)=*(s1+i);
}
}
return maxlen;
}
i