首页 > 9.7贝壳笔试 iOS
头像
QK康哥在此
编辑于 2020-09-07 16:28
+ 关注

9.7贝壳笔试 iOS

iOS笔试四道编程题,全A了,比较简单。
代码在下面,抛砖引玉。
1、石头剪刀布问题。 我也不知道代码如何写的优雅,稍微优化了下,不然判断太多了。
#include<iostream>
#include<vector>
#include<map>
using namespace std;
int main()
{
    int n;cin>>n;
    char a,b,c,d;
    int q,w,e,r;
    map<char,int> mp;
    mp['S']=3;mp['J']=2;mp['B']=1;
    float x,y;
    while(n)
    {
        cin>>a>>b>>c>>d;
        q=mp[a],w=mp[b],e=mp[c],r=mp[d];
        x=0,y=0;
        if(q==1){
            if(e==3)
                x++;
            if(r==3)
                x++;
        }
        else{
            if(q-e==1)
                x++;
            if(q-r==1)
                x++;
        }
        if(w==1){
            if(e==3)
                y++;
            if(r==3)
                y++;
        }
        else{
            if(w-e==1)
                y++;
            if(w-r==1)
                y++;
        }
        if(x>y)
            cout<<"left"<<endl;
        else if(x==y)
            cout<<"same"<<endl;
        else
            cout<<"right"<<endl;
        n--;
    }
    system("pause");
    return 0;
}
2、构建字符串的次数。遵循以下规则
1) 添加一个字符(好像只能时尾部添加,代码只考虑这个,应该是这样的)
2)复制前面已有的,只能用规则2一次。
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
    int n;cin>>n;
    string s;cin>>s;
    vector<int> v;
    for(int i=1;i<s.size()/2+1;i++)
        {
            if(s[i]==s[0])
                v.push_back(i);
        }
    for(int i=v.size()-1;i>=0;i--)
    {
        int a=0,b=v[i],k=v[i];
        while(s[a]==s[b]&&b<s.size())
        {
            a++;b++;
        }
        if(a==k)
        {
            cout<<n-k+1<<endl;
            system("pause");
            return 0;
        }
    }
    cout<<n<<endl;
    system("pause");
    return 0;
}
3、结构体排序,比较简单。
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct node{
    string s;
    int x;
    int y;
};
int main()
{
    int n,k;cin>>n;
    while(n){
        n--;
        cin>>k;
        vector<node> v;
        for(int i=0;i<k;i++)
        {
            node a;
            cin>>a.s>>a.x>>a.y;
            v.push_back(a);         
        }
        sort(v.begin(),v.end(),[](node &a,node &b)
        {
            if(a.x>=b.x)
            {
                if(a.x>b.x)
                    return true;
                if(a.y>=b.y){
                    if(a.y>b.y)
                        return true;
                    if(a.s<b.s)
                        return true;
                    else 
                        return false;
                }
                else
                    return false;
            }
            return false;
        });
        for(int i=0;i<k;i++)
            cout<<v[i].s<<" ";
        cout<<endl;
    }
    system("pause");
    return 0;
}
4、字符串匹配。用例真的是太简单了,差不多暴力过的。
#include<iostream>
#include<string>
using namespace std;
int main()
{
    int n;cin>>n;
    string s,t;string x;
    while(n--)
    {
        cin>>s;
        cin>>t;
        x="";
        for(int i=0;i<s.size();i++)
            {
                if(s[i]=='1')
                    x+="63231323";
                if(s[i]=='2')
                    x+="53231323";
                if(s[i]=='3')
                    x+="43231323";
            }
        int res=0;int xs=x.size();
        for(int i=0;i<t.size()-x.size()+1;i++)
        {
            int k=i,j,next=0;int flag=0;
            if(t[i]==x[0])
            {
                for(j=i+1;j<i+x.size()&&j<t.size();j++)
                {
                    if(t[j]!=x[j-k])
                        {
                            break;
                        }
                    if(flag==0&&t[j]==x[0])
                    {
                        next=j;
                        flag=1;
                    }
                }
                if(j==i+x.size())
                    {
                        res++;
                        if(flag==1)
                            i=next-1;
                        else
                            i=j-1;
                    }
            }
        }
        cout<<res<<endl;
    }
        system("pause");
        return 0;
}



全部评论

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

推荐话题

相关热帖

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

近期精华帖

热门推荐