给出一篇英文文章,现在需要统计文章中出现英文单词的数量。
输入格式:
第一行一个T,代表数据组数
对于每组数据,第一行一个n,代表文章中单词的个数,其后n行每行一个只包含小写字母的长度为1到10的字符串
输出格式:
每组数据输出若干行,每行输出单词以及它出现的次数(中间空格隔开),不同单词按单词字典序从小到大输出
保证单词出现的总次数<=1e5
输入样例:
1
8
it
is
a
pen
it
is
a
dog
输出样例:
a 2
dog 1
is 2
it 2
pen 1
emmmm,第一行的数据组数不明白怎么回事,但还是加上了一个循环。
code:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int team;
cin>>team;
for(int i=0; i<team; i++)
{
map<string,int> mp;
int num;
cin>>num;
string str[num];
for(int j=0; j<num; j++)
{
cin>>str[j];
mp[str[j]] = 0;
}
for(int j=0; j<num; j++)
{
mp[str[j]] ++;
}
map<string, int>::iterator iter;
for(iter = mp.begin();iter!=mp.end();iter++){
cout<<iter->first<<" "<<iter->second<<endl;
}
}
return 0;
}
最后,分享一个我的眼瞎故事,因为begin()忘了括号,就一直报错,我还在奇怪,为啥复制以前的代码就可以运行,但自己打出来就报错,这样来来回回n次,最后还是别人给挑出来的……