#include <iostream>
#include <string>
using namespace std;
string max(string arr[], int n);
int main() {
int n;
while (cin >> n) {
if (n == 0) return 0;
string* arr = new string[n]; //动态字符串数组
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
cout << max(arr, n) << endl;//暴力法O(n^2)遍历数组统计个数
delete[] arr;
}
return 0;
}
string max(string arr[], int n) {
int max = 0, index = 0;
for (int i = 0; i < n; i++)
{
int temp = 0; //暂存该color在此后出现次数,少遍历几下是几下吧,虽然都已经暴力了…
for (int j = i; j < n; j++)
{
if (arr[i] == arr[j])
temp++;
}
if (temp > max) //更新
{
max = temp;
index = i;
}
}
return arr[index];
}
有没有好点的方法啊,虽然考试的话暴力就可以了…