本文主要是介绍HDOJ 1004 水题(但有值得注意的地方),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题意:统计出现最多次数的单词
code1:
注意这个 需要判断 是否越界(while循环位置),
#include<bits/stdc++.h>
using namespace std;/* 题目很简单 但是需要注意的是 最后几个相等 的时候 会出现 数组越界的问题
*/
int main(){string color;int n;while(cin >> n && n!=0){vector<string> vec;for(int i = 0; i < n; ++i){cin >> color;vec.push_back(color);}sort(vec.begin(),vec.end());int i,ans = 0,len;string pop = vec[0];for(i = 1; i < vec.size();){len = 1;while(i < vec.size() && vec[i-1] == vec[i]){++i;++len;//cout << vec[i] << endl; } if(len > ans){ans = len;pop = vec[i-1];}++i;}cout << pop << endl;}return 0;}
code2: map
#include<bits/stdc++.h>
using namespace std;
typedef map<string,int> msi;int main(){string color;int n;ios::sync_with_stdio(false);cin.tie(NULL);while(cin >> n && n != 0){msi mp;for(int i = 0; i < n; ++i){cin >> color;++mp[color];}msi::iterator it = mp.begin();int ans = -1;string pop;for(;it != mp.end(); ++it){if(it->second > ans){ans = it->second;pop = it->first;}}cout << pop <<endl;}return 0; }
这篇关于HDOJ 1004 水题(但有值得注意的地方)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!