第一题我写了一下,不知道能不能过,请大佬们看看 struct team { int index; bool flag; int BestMc; int BestMcCount; team(int i,bool f,int Mc,int McCount) { index = i; flag = f; BestMc = Mc; BestMcCount = McCount; } }; bool cmp(team a, team b) { if(a.BestMc!=b.BestMc) { return a.BestMc<b.BestMc; } else if(a.BestMcCount != b.BestMcCount) { return a.BestMcCount>b.BestMcCount; } else { return a.index < b.index; } } int main() { int n; cin>>n; vector<team> TM; for(int i = 0 ; i < 26; i++) { TM.push_back(team(i,false,27,0)); } string str; for(int i = 0 ; i < n; i++ ) { cin>>str; int MC = 1; for(int i = 0 ; i < str.size(); i++) { if(TM[str[i] - 'a'].BestMc == MC) { TM[str[i] - 'a'].BestMcCount++; } else if(TM[str[i] - 'a'].BestMc > MC) { TM[str[i] - 'a'].BestMc = MC; TM[str[i] - 'a'].flag = true; TM[str[i] - 'a'].BestMcCount = 1; } MC++; } } sort(TM.begin(),TM.end(),cmp); for(int i = 0 ; i < 26; i++) { if(TM[i].flag == true) { cout<<char(TM[i].index + 'a'); } } }
点赞 5

相关推荐

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