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 允许存在相同的元素