Let the Balloon Rise
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 87389 Accepted Submission(s): 33034
This year, they decide to leave this lovely job to you.
A test case with N = 0 terminates the input and this test case is not to be processed.
5 green red blue red red 3 pink orange pink 0
red pink
分析:
字符串问题,统计所有字符串出现的次数,最后输出出现次数最大的字符串(可能不止一个,输出靠前的一个)
以下是用char* AC的代码
代码:
#include<iostream> using namespace std; int main() { int n; while (scanf("%d",&n), n) { char a[1005] = { 0 }; char s[10005][16]; for (int i = 1;i <= n;i++) { scanf("%s", s[i]); } int max = 0; for (int i = 1;i <= n;i++) { for (int j = i + 1;j <= n;j++) { if (strcmp(s[i], s[j]) == 0) { a[i] += 1; } } if (a[i] > max) { max = a[i]; } } for (int l = 1;l <= n;l++) { if(a[l]==max) printf("%s\n", s[l]); } } return 0; }
以下是用map容器 AC的代码
#include<string> #include<map> #include<iostream> using namespace std; int main() { int n; while (cin >> n, n) { string color; string max_color; map<string, int> shuliang; while (n--) { cin >> color; if (shuliang.count(color) == 0) shuliang[color] = 1; else shuliang[color] += 1; if (shuliang[color] > shuliang[max_color]) max_color = color; } cout << max_color << endl; } }