1. 程式人生 > >字串處理-Hdu1004

字串處理-Hdu1004

題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=1004

題目大意:給你一個數n,要求輸入n個字串,在這n個字串中,我們需要輸出出現次數最多的字串。

這道題看起來的確很簡單,但是卻花了我不少時間,開始時是利用C語言中的char陣列來存這些字串,依次統計,但是做了很久都始終有錯,於是我便轉變思路,利用C++中的string來村字串。

注意:這裡有一個小小的知識點,用string來定義的字串,最好使用cout來輸出,如果用printf函式來輸出的話會出現亂碼。(具體的可以參考部落格:https://blog.csdn.net/cjolj/article/details/55267660)

程式碼

#include<cstring>
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;

int main()
{
    int n;
    while(cin>>n&&n){
        int v;
        string b[n];
        v=n;
        while(n--){
            cin>>b[n];
        }
        int r[v];//用來存放每個串出現的次數
        for(int i=0;i<v;i++){
            r[i]=0;
            for(int j=0;j<v;j++){
                if(b[i]==b[j]) r[i]++;
            }
        }
        int max1=0;
        for(int i=0;i<v;i++){
            if(r[max1]<=r[i]){
                max1=i;
            }
        }
        cout<<b[max1]<<endl;
    }
    return 0;
}