牛客编程巅峰赛S2第5场 - 青铜&白银&黄金

牛牛算数

https://ac.nowcoder.com/acm/contest/9556/A

A 牛牛算数

解题思路:按照题意求出中位数和平均值进行比较即可。
int Answerofjudge(vector<int>& arr) {
        // write code here
        long long sum=0;
        double mid,avg;
        int n=arr.size();
        sort(arr.begin(),arr.end());
        for(int i=0;i<n;++i)
        {
            sum+=arr[i];
        }
        avg=sum*1.0/n;
        if(n&1)mid=arr[n/2];
        else mid=1LL*(arr[n/2-1]+arr[n/2])*1.0/2;
        if(mid>avg)return 1;
        else if(mid<avg)return -1;
        else return 0;
    }

B 怕npy的牛牛

解题思路:利用双指针保存每段不同时包含npy三个字符的子串,比较每段满足条件的字串长度找到最大子串长。
int Maximumlength(string x) {
        int i,m=x.size(),n=0,p=0,y=0,mx=0,l=0;
        for(int i=0;i<m;++i)
        {
            if(x[i]=='n')n++;
            if(x[i]=='p')p++;
            if(x[i]=='y')y++;
            while(n>=1&&p>=1&&y>=1)
            {
                if(x[l]=='n')n--;
                if(x[l]=='p')p--;
                if(x[l]=='y')y--;
                l++;
            }
            mx=max(mx,i-l+1);
        }
        return mx;
    }

C 牛牛与后缀表达式

解题思路:用栈保存操作数,执行完一个运算以后就将结果放入栈中以备下次运算。
long long solve(string str) {
        // write code here
        stack<long long>s;
        long long tmp=0;
        for(int i=0;i<str.size();++i)
        {
            if(str[i]>='0'&&str[i]<='9')
                tmp*=10,tmp+=str[i]-'0';//字符串操作数转换成int型
            else if(str[i]=='#')
            {
                s.push(tmp);
                tmp=0;
            }
            else{ //操作符
                long long p1=s.top();
                s.pop();
                long long p2=s.top();//前面的表达式结果放在了栈中当前操作数后
                s.pop();
                switch(str[i])
                {
                    case '+':s.push(p2+p1);break;
                    case '-':s.push(p2-p1);break;
                    case '*':s.push(p2*p1);break;
                }
            }
        }
        return s.top();
    }


全部评论
^-^
1 回复 分享
发布于 2020-12-02 10:02

相关推荐

预计下个星期就能开奖吧,哪位老哥来给个准信
华孝子爱信等:对接人上周说的是这周
点赞 评论 收藏
分享
10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
沉淀一会:1.同学你面试评价不错,概率很大,请耐心等待; 2.你的排名比较靠前,不要担心,耐心等待; 3.问题不大,正在审批,不要着急签其他公司,等等我们! 4.预计9月中下旬,安心过节; 5.下周会有结果,请耐心等待下; 6.可能国庆节前后,一有结果我马上通知你; 7.预计10月中旬,再坚持一下; 8.正在走流程,就这两天了; 9.同学,结果我也不知道,你如果查到了也告诉我一声; 10.同学你出线不明朗,建议签其他公司保底! 11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务