题目
坊间传说,三长一短选最短,三短一长选最长,参差不齐就选 C。
给出 T 个选择题,根据上面的坊间传说选出答案。
注意,优先判断是否满足 “三长一短”,再判断是否满足 “三短一长”。
当且仅当最短选项唯一时满足 “三长一短”;同理,当且仅当最长选项唯一时满足 “三短一长”。其余情况都算作 “参差不齐”。
解题思路
记录四个选项中最短和最长的选项。
如果最短选项唯一,返回此选项。
否则,如果最长选项唯一,返回此选项。
否则,返回 C。
C++代码
#include<iostream>
#include<vector>
using namespace std;
int main(){
string select = "ABCD";
int T;
cin >> T;
string s[4];
while(T--){
cin >> s[0] >> s[1] >> s[2] >> s[3];
int len[4] = {0};
vector<int> mi, ma;
for(int i=0; i<4; ++i){
len[i] = s[i].size();
if(mi.empty()){
mi.push_back(i);
}
else if(len[i] < len[mi[0]]){
mi.clear();
mi.push_back(i);
}
else if(len[i] == len[mi[0]]){
mi.push_back(i);
}
if(ma.empty()){
ma.push_back(i);
}
else if(len[i] > len[ma[0]]){
ma.clear();
ma.push_back(i);
}
else if(len[i] == len[ma[0]]){
ma.push_back(i);
}
}
if(mi.size()==1)
cout << select[mi[0]] << endl;
else if(ma.size()==1)
cout << select[ma[0]] << endl;
else
cout << "C" << endl;
}
return 0;
} 
京公网安备 11010502036488号