题解 | 牛牛的考试
牛牛的考试
https://www.nowcoder.com/practice/1a7a7c8d721547a29107cf02330ffe72
#include <iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
int T;
cin>>T;
cin.ignore();//注意这里忽略掉T后面的换行符,否则getline会先读入换行符作为第一个选项,导致后面选项错位
while(T--){
vector<string>s(4);
vector<int>len(4);
for(int i=0;i<4;i++){
getline(cin,s[i]);
len[i]=s[i].size();
}
int min_len=*min_element(len.begin(),len.end());
int max_len=*max_element(len.begin(),len.end());
int sum1=0,sum2=0;
int m=0,n=0;
for(int j=0;j<4;j++){
if(min_len==len[j]) {
sum1++;
m=j;
}
if(max_len==len[j]){
sum2++;
n=j;
}
}
char answer;
if(sum1==1&&sum2!=1){ //这里注意“三长一短”条件的判断,若A最短,B稍长于A,且C、D等长且最长,符合
answer='A'+m;
cout<<answer<<endl;
}
else if(sum2==1&&sum1!=1){ //这里注意“三短一长”条件的判断,若A最长,B稍短于A,且C、D等长且最短,符合
answer='A'+n;
cout<<answer<<endl;
}
else cout<<"C"<<endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")

查看17道真题和解析