【题解】A-面试(7606. 2020牛客NOIP赛前集训营-普及组(第二场))

面试

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

提交记录

45258014

思路

统计 A B C D 四个字母的出现次数。

for(int i = 0 ; i < 4 ; i++) {
    if(s[i] == 'A') cnta++;
    else if(s[i] == 'B') cntb++;
    else if(s[i] == 'C') cntc++;
    else if(s[i] == 'D') cntd++;
}

根据题目中所描述的内容:

如果面试者在四轮中有一次发挥被评为 D,或者两次发挥被评为 C,就不会通过面试。如果面试者没有一次被评为 D,并且有三个或以上的 A,则会获得 special offer。其余情况会获得普通 offer。

可以写出如下代码

if(cntd || cntc >= 2) {
    cout << "failed" << endl;
}
else if(!cntd && cnta >= 3) {
    cout << "sp offer" << endl;
}
else {
    cout << "offer" << endl;
}

代码

#include<bits/stdc++.h>

using namespace std;

int main() {
    int t, cnta, cntb, cntc, cntd;
    string s;
    cin >> t;
    while(t--) {
        cnta = cntb  = cntc = cntd = 0;
        cin >> s;
        for(int i = 0 ; i < 4 ; i++) {
            if(s[i] == 'A') cnta++;
            else if(s[i] == 'B') cntb++;
            else if(s[i] == 'C') cntc++;
            else if(s[i] == 'D') cntd++;
        }
        if(cntd || cntc >= 2) {
            cout << "failed" << endl;
        }
        else if(!cntd && cnta >= 3) {
            cout << "sp offer" << endl;
        }
        else {
            cout << "offer" << endl;
        }
    }
    return 0;
}
全部评论
手真快
点赞 回复 分享
发布于 2020-10-20 22:17

相关推荐

不愿透露姓名的神秘牛友
06-26 14:50
人力小鱼姐:有后面墨迹那两句的时间问题早回答完了
点赞 评论 收藏
分享
Twilight_mu:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务