首页 > 携程笔试(算法方向 2020.9.8)
头像
谁能解忧,唯有代码
编辑于 2020-09-08 20:55
+ 关注

携程笔试(算法方向 2020.9.8)

三道编程题都很简单,40分钟AC
第一道    求能组成两个字符串的最大子串
#include <iostream>

using namespace std;

int main()
{
    string str1,str2;
    cin>>str1>>str2;
    int n=str1.size();
    int m=str2.size();

    string res="";
    for(int j=1;j<=n && j<=m;j++)
    {
        string temp=str1.substr(0,j);
        if(str2.substr(0,j) != temp)
        {
            res="";
            break;
        }

        int k;
        for(k=j;k<n;k+=j)
        {
            if(temp!=str1.substr(k,j))
                break;
        }
        if(k<n)
            continue;
        for(k=j;k<m;k+=j)
        {
            if(temp!=str2.substr(k,j))
                break;
        }
        if(k<m)
            continue;
        res=temp;

    }

    cout<<res;

    return 0;
}
第二道:矩阵规律输出
#include <iostream>

using namespace std;

int main()
{
    int n,m;
    cin>>n>>m;

    int** mat=new int*[n];
    for(int i=0;i<n;i++)
        mat[i]=new int[m];
    int mask=1;
    for(int i=0;i<n;i++)
    {
        int x=i,y=0;
        while(x>=0 && y<m)
            mat[x--][y++]=mask,mask++;
    }
    for(int j=1;j<m;j++)
    {
        int x=n-1,y=j;
        while(x>=0 && y<m)
            mat[x--][y++]=mask,mask++;
    }

    cout<<"[";
    for(int i=0;i<n;i++)
    {
        if(i!=0)
            cout<<",";
        cout<<"[";
        for(int j=0;j<m-1;j++)
            cout<<mat[i][j]<<",";
        cout<<mat[i][m-1]<<"]";

    }
    cout<<"]";
    return 0;
}
第三道:字符串压缩
#include <iostream>

using namespace std;

int main()
{
    string str;
    cin>>str;
    int n=str.size();

    for(int i=0;i<n;i+=5)
    {
       int result=0;
       for(int j=i;j<n && j<i+5;j++)
       {
           result=result<<6;
           if(str[j]>='a' && str[j]<='z')
                result+=str[j]-'a'+1;
           else if (str[j]>='A' && str[j]<='Z')
                result+=str[j]-'A'+27;
           else if (str[j]>='0' && str[j]<='9')
                result+=str[j]-'0'+53;
       }
       if(i==0)
            cout<<result;
       else
            cout<<" "<<result;
    }
    cout<<endl;

    return 0;
}


全部评论

(2) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐