阿里巴巴集团2015秋季校园招聘笔试题

今年阿里全面进行网上笔试,我投的是测试开发工程师,据我所知,大家的题目还是不尽相同

答题说明: 本试卷共分为两部分。第一部分为单选题,时长40分钟,第二部分为附加题,时长80分钟,答题时间总计120分钟。你可在答题开放时间内前来答题,答题一旦开始计时开始,中途不可暂停,请合理安排时间。

第一部分的题目没有记,大概考点有操作系统(LRU算法),计算机网络,循环链表插入,概率论,正则表达式匹配,逻辑推断(竟然有好几题),还有一题问fork()||fork()共创建多少进程,对linux编程不甚了解,求高人解答

下面是第二部分的三题:

第一题:


第二题:

写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。


 struct BinTree
{
    int data;
    BinTree *left;
    BinTree *right;
    BinTree(int x) : data(x), left(NULL), right(NULL) { }
};

int maxDiffNum(BinTree *root)
{
    if (root == NULL)      return 0;
    stack<BinTree*> s;
    BinTree *p=root;
    int min=INT_MIN,max=INT_MAX;
    while(p!=NULL||!s.empty())
    {
        while(p!=NULL)
        {
            if(p->data > max)  max = p->data;
            if(p->data < min)  min = p->data;
            s.push(p);
            p=p->left;
        }
        if(!s.empty())
        {
            p=s.top();
            s.pop();
            p=p->right;
        }
    }
    return abs(max-min);
}

第三题:
给定一个query和一个txt,均由小写字母组成。要求在text中找出以同样顺序连续出现在query中的最长连续字母序列的长度。例如,query为“abcac”,text为“acaccbabb”,那么text中的“cba”为最长的连续出现在query中的字母序列,因此,返回结果应该为其长度3。请注意程序效率。


#include <iostream>
#include <string>
#define ARRAY_X 20
#define ARRAY_Y 20


using namespace std;


int longestCommonSubsequence(string text, string query)
{
    int max_length = 0;
    int query_length = query.length();
    int text_length = text.length();
    int c[ARRAY_X][ARRAY_Y];


    for (int i = 1; i < text_length + 1; i++)
    {
        c[i][0] = 0;
    }
    for (int i = text_length; i > 0; i--)
    {
        text[i] = text[i - 1];
    }
    for (int j = query_length; j > 0; j--)
    {
        query[j] = query[j - 1];
    }
    for (int j = 0; j < query_length + 1; j++)
    {
        c[0][j] = 0;
    }


    for (int i = 1; i < text_length + 1; i++)
    {
        for (int j = 1; j < query_length + 1; j++)
        {
            if (text[i] == query[j])
            {
                c[i][j] = c[i - 1][j - 1] + 1;
                if (c[i][j] >= max_length)
                {
                    max_length = c[i][j];
                }
            }
            else
            {
                c[i][j] = 0;
            }
        }
    }


    return max_length;
}


int main()
{
    string text;
    string query;
    cin >> text;
    cin >> query;
    cout << longestCommonSubsequence(text, query) << endl;
    return 0;
}

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 、可私信6博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 、可私信6博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值