一道map的水题(sb的我用sort超时了)
// 超时代码
#include <string> #include <algorithm> #include <iostream> #include <cstring> using namespace std; string a[1010]; int main () { int n; while (cin >> n && n) { memset(a, 0, sizeof(a)); for (int i = 0; i < n; ++i) { string aa; cin >> aa; a[i] = aa; } sort(a, a + n); int num = 1; int temp = 1; string ans = a[0]; string before = a[0]; // for (int i = 0; i < n; ++i) { // cout << a[i] << "!" << endl; // } for (int i = 1; i < n; ++i) { if (before == a[i]) { temp ++; } else { before = a[i]; } if (temp > num) { temp = 1; ans = a[i - 1]; } } cout << ans << endl; } }
//AC代码
// #include<cstdio> // #include<iostream> // #include<algorithm> // #include<cstring> // #include<cstdlib> // #include<string> // #include<cmath> // #include<ctype.h> // #include<climits> // #include<vector> // #include<map> // #include<set> // #include<queue> // #include<functional> #include <bits/stdc++.h> #define stop while(1); #define lowbit(x) (x&(-x)) #define eps (1e-8) #define pi (acos(-1.0)) #define maxint INT_MAX #define maxlong 0xFFFFFFFFFFFFFFFLL using namespace std; typedef unsigned long long u64; int main() { int n,i; while(cin>>n, n) { map<string, int>mm; map<string, int>::iterator it; string ch, ans; for (i=0; i < n; i++) { cin >> ch; mm[ch]++; } int cnt = 0; for(it = mm.begin(); it != mm.end(); it++) if(it->second > cnt){ cnt = it->second; ans = it->first; } cout<<ans<<endl; } }