7-5 统计英文单词个数 (20分)
给出一篇英文文章,现在需要统计文章中出现英文单词的数量。
输入格式:
第一行一个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
#include<bits/stdc++.h>
using namespace std;
int main()
{
int T,n;//T组数据 n表示每组n个单词
cin>>T;//输入T组数据
while(T--)
{
cin>>n;
multiset<string> s;//用 multiset 存储元素 创建对象 s
string str;
for(int i=0; i<n; i++)
{
cin>>str;
s.insert(str);//向集合容器中插入字串 str
}
auto s1=s.begin();//it1返回容器的初始迭代器
if(s1!=s.end())//it1不等于最后的元素
{
cout<<*s1<<" "<<s.count(*s1)<<endl;
}
for(auto s2=s.begin(); s2!=s.end(); s2++)
{
if(*s2!=*s1)
{
cout<<*s2<<" "<<s.count(*s2)<<endl;
s1=s2;
}
}
}
return 0;
}
set 和 multiset 都是集合 存储一组相同数据类型的元素。
区别 set存储的数据互不相同
multiest 允许存在相同的元素

京公网安备 11010502036488号