• 面试记录(二)


    这次面的是一家头部医疗器械公司,有了第一次失败的经历,这次做了相对充分的准备。依然没有投递,公司技术人员先是直接打电话问了一些问题,个人觉得答得还不错,很顺利,不久HR打电话通知二面。
    面试时间:03月08日 19:00
    面试职位:软件工程师
    先是做了一份题如下:

    1.最大公共子串

    char* longest(const char* str1,const char* str2){
        int len1 = strlen(str1);
        int len2 = strlen(str2);
        int max = 0.num = 0;
        int start, start1, start2;
        for(int i=0;i<len1;i++){
            for(int j=0;j<len2;j++){
                start1 = i;
                start2 = j;
                while((start1<len1)&&(start2<len2)&&(str1[start1++]==str2[start2++])){
                    num++;
                }
                
                if(num>max){
                    max = num;
                    start = i;
                }
                num = 0;
            }
        }
        
        char* strnew = new char[max];
        strncpy(strnew,str1+start,max);
        
        return strnew;
    }
    

    2.判断回文数

    bool palindromic(unsigned int n){
        unsigned int m = 0,tep = n;
        while(tep>0){
            m = m*10 + tep%10;
            tep/=10;
        }
        
        return (m==n);
    }
    

    3.不使用库函数将字符串转换成数字

    int str2int(const char* str)
    {
        int temp = 0;
        const char* ptr = str;
     
        if ( *str == '-' || *str == '+' )
        {
            str++;
        }
     
        while ( *str != '' )
        {
            if ( ( *str < '0') || ( *str > '9' ) )
            {
                break;
            }
     
            temp = temp * 10 + (*str - '0');
            str++;
        }
     
        if ( *ptr == '-' )
        {
            temp = -temp;
        }
     
        return temp;
    }
    

    4.C++的四种类型转换

    • const_cast:去const属性;
    • static_cast:基本类型转换;
    • dynamic_cast:多态类之间的类型转换;
    • reinterpret_cast:不同类型的指针类型转换;

    5.删除两个双向链表中相同的节点

    struct Node
    {
        int data;
        Node *front, *next;
    };
    
    void deleteCommonNode(Node *pHeadA, Node* pHeadB)
    {
        if(pHeadA == NULL || pHeadB == NULL)
            return ;
            
        std::map<int,Node *> mapNode;
        Node *tmp = pHeadA; 
        while(NULL!=tmp)
        {
            mapNode[tmp->data] = tmp;
            tmp = tmp->next;
        }
        Node *tmpb = pHeadB;
        while(NULL!=tmpb)
        {
            if(mapNode[tmpb->data] != NULL)
            {
                //存在相同data,从A和B中删除
                if(tmpb == pHeadB)
                {
                    pHeadB = pHeadB->next;
                    pHeadB->front = NULL; 
                }
                else
                {
                    tmpb->front->next = tmpb->next;
                    tmpb->next->front = tmpb->front;
                } 
                delete tmpb;
                
                Node *tmpa = mapNode[tmpb->data];
                mapNode.erase(tmpa->data);
                if(tmpa == pHeadA)
                {
                    pHeadA = pHeadA->next;
                    pHeadA->front = NULL; 
                }
                else
                {
                    tmpa->front->next = tmpa->next;
                    tmpa->next->front = tmpa->front;
                }
                delete tmpa;    
            }
        } 
    }
    
    

    做完之后,应该是一个小组长,看了我的试卷后对我最后一个题的解不是很满意,于是开始聊天,问了很多modern C++的内容,因为工作只涉及到C++ 98/03,故面试官不是很满意。后来来了一个应该是这个人的上级对我进行二面,主要之前项目的一些问题。这次表现的还可以,虽然之前做的项目在他们看来比较简单。
    过了几天,HR打电话来问了期望薪资,我报18,HR说综合笔试和面试情况只能给到15*14,感觉到我不想去之后加了1K,我依然拒绝了。

  • 相关阅读:
    CentOS linux系统搭建LAMP环境
    网站跳出率高的优化方案
    IT痴汉的工作现状24-Just for fun
    windows下远程连接ubantu
    Hibernate基础映射
    我院同学在2013年第四届“蓝桥杯”全国软件专业人才设计与创业大赛全国总决赛中获得佳绩
    Linux下打开串口设置
    zoj 3261 Connections in Galaxy War
    Android之startActivityForResult的使用
    当心Azure跨区域数据传输产生额外费用
  • 原文地址:https://www.cnblogs.com/sunwenqi/p/14530863.html
Copyright © 2020-2023  润新知