码迷,mamicode.com
首页 > 其他好文 > 详细

HDU - 1004 Let the Balloon Rise

时间:2017-02-05 11:18:09      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:tor   pre   hdu   iostream   return   names   map   div   输出   

题意:给出n组字符串,判断哪一个字符串出现的次数最多,并输出该字符串。当n=0时,表示结束。

1.运用c++里的string数组来处理。再定义一个计数的数组,初始化0,两个for循环,出现一次相同加1,然后再比较一下

哪个最大,记录下标就ok了。

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 
 5 int main(){
 6     string s[1001];
 7     int a[1001];
 8     int n;
 9     while(cin >> n&&n){
10         for(int i=0;i<n;i++){
11             cin >> s[i];
12             a[i]=0;
13         }
14         for(int i=0;i<n;i++){
15             for(int j=0;j<n;j++){
16                 if(s[i]==s[j])
17                 a[i]++;
18             }
19         }
20         int max=0,k;
21         for(int i=0;i<n;i++){
22             if(a[i]>max){
23                 max=a[i];
24                 k=i;
25             }
26         }
27         cout << s[k] << endl;
28     }
29     return 0;
30 }

2.还有一种是网上的思路:排序完再累加上去,比较。

 1 #include<iostream>
 2 #include<string>
 3 #include<algorithm>
 4 using namespace std;
 5 
 6 int main(){
 7     int n;
 8     while(cin >> n&&n){
 9         string s[1010];
10         int num[1010];
11         for(int i=0;i<n;i++){
12             cin >> s[i];
13             num[i]=1;
14         }
15         sort(s,s+n);
16         int max=0;
17         for(int i=1;i<n;i++){
18             if(s[i]==s[i-1])
19             num[i]=num[i]+num[i-1];
20             if(num[i]>=num[max])
21             max=i;
22         }
23         cout << s[max] << endl;
24     }
25     return 0;
26 } 

3.还有一种用map的(虽然看得一脸懵比,但是还是先记下来)

 1 #include <iostream>
 2 #include <string>
 3 #include <map>
 4 using namespace std;
 5 
 6 int main(){
 7      map<string, int> Ballon;
 8      string color, MaxColor;
 9      int n, max;
10      while(cin>>n&&n){
11          Ballon.clear();
12          while(n--){
13              cin>>color;
14              Ballon[color]++;
15          }
16          map<string, int>::iterator it;
17          max = 0;
18          for(it=Ballon.begin(); it!=Ballon.end(); it++){
19              if(it->second>max){
20                  max = it->second;
21                  MaxColor = it->first;
22              }
23          }
24          cout<<MaxColor<<endl;
25      }
26      return 0;
27  }

 

HDU - 1004 Let the Balloon Rise

标签:tor   pre   hdu   iostream   return   names   map   div   输出   

原文地址:http://www.cnblogs.com/Leonard-/p/6366969.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!