题解 | 牛牛的考试

牛牛的考试

https://www.nowcoder.com/practice/1a7a7c8d721547a29107cf02330ffe72

1
A.3
B.21
C.0.61
D.0.577215664901532860

【三长一短】三长一短 是指在四个选项长度中恰有一个选项的长度严格小于另外三个选项,且不存在四个选项长度中恰有一个选项的长度严格大于另外三个选项

【三短一长】三短一长 是指在四个选项长度中恰有一个选项的长度严格大于另外三个选项,且不存在四个选项长度中恰有一个选项的长度严格小于另外三个选项

注意一下严格小于和严格大于,上述示例存在恰有一个选项的长度严格小于另外三个选项,也存在恰有一个选项的长度严格大于另外三个选项,所以这种情况应该选C

主要加上的代码为:

if ((num[max] > 1 && num[min] > 1)||(num[max] == 1 && num[min] == 1)) {
            cout << "C" << endl;
}

#include <algorithm>
#include <iostream>
using namespace std;

int main() {
    string s;
    int max ;
    int min ;
    int num[700];
    int mini ;
    int maxi ;

    int T;
    cin >> T;
    while (T > 0) { // 注意 while 处理多个 case
        fill(num, num + 700, 0);
        mini = 0;
        maxi = 0;
        max = 0;
        min = 700;
        for (int i = 1; i <=4; i++) {
            cin >> s;

            num[s.length()]++;
            if (s.length() >= max) {
                max = s.length();
                maxi = i;
            }
            if (s.length() <= min) {
                min = s.length();
                mini = i;
            }
        }
        if ((num[max] > 1 && num[min] > 1)||(num[max] == 1 && num[min] == 1)) {
            cout << "C" << endl;
        } else if (num[ min] == 1) {
            cout << char(mini + 64) << endl;
        } else if (num[max] == 1) {
            cout << char(maxi + 64) << endl;
        }

        T--;
    }
    return 0;
}



全部评论

相关推荐

纯真的河老师在喝茶:第一个是这个时间点岗位少,第二个是这个简历重复度太高了,10个有9个简历差不多的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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