字串處理-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;
}