HDU 2072 单词数(set)
2017-05-06 11:28
351 查看
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
Sample Input
you are my friend
#
Sample Output
4
思路:利用set的特性,set是数学上的集合,每个元素最多出现一次,且其中的元素自动的从小到大排列,利用这一特性,可以统计有多少个不同的单词
#include<iostream>
# include<cstring>
#include<cstdio>
# include<sstream>
# include<string>
#include<set>
using namespace std;
string wen,str;
set<string> dict;
int main()
{
while(getline(cin,wen)&&wen!="#")
{
stringstream ch(wen); //创造一个字符串流,在文本串中找单个单词
while(ch >>str)
{
dict.insert(str);
//cout<<str<<endl;
}
cout<<dict.size()<<endl;
dict.clear();
}
return 0;
}
set总结
insert(key_value);将key_value插入到set中,返回值是pair< set< int>::iterator,bool>,bool标志着插入是否成功,而iterator代表插入的位置,若key_value已经在set中,则iterator表示的key_value在set中的位置。
lower_bound(key_value),返回第一个大于等于key_value的定位器
upper_bound(key_value),返回最后一个大于等于key_value的定位器
count(),用来查找set中某个某个键值出现的次数。这个函数在set并不是很实用,因为一个键值在set只可能出现0或1次,这样就变成了判断某一键值是否在set出现过了。
clear(),删除set容器中的所有的元素
empty(),判断set容器是否为空
max_size(),返回set容器可能包含的元素最大个数
size(),返回当前set容器中的元素个数
begin()
end()
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
Sample Input
you are my friend
#
Sample Output
4
思路:利用set的特性,set是数学上的集合,每个元素最多出现一次,且其中的元素自动的从小到大排列,利用这一特性,可以统计有多少个不同的单词
#include<iostream>
# include<cstring>
#include<cstdio>
# include<sstream>
# include<string>
#include<set>
using namespace std;
string wen,str;
set<string> dict;
int main()
{
while(getline(cin,wen)&&wen!="#")
{
stringstream ch(wen); //创造一个字符串流,在文本串中找单个单词
while(ch >>str)
{
dict.insert(str);
//cout<<str<<endl;
}
cout<<dict.size()<<endl;
dict.clear();
}
return 0;
}
set总结
insert(key_value);将key_value插入到set中,返回值是pair< set< int>::iterator,bool>,bool标志着插入是否成功,而iterator代表插入的位置,若key_value已经在set中,则iterator表示的key_value在set中的位置。
lower_bound(key_value),返回第一个大于等于key_value的定位器
upper_bound(key_value),返回最后一个大于等于key_value的定位器
count(),用来查找set中某个某个键值出现的次数。这个函数在set并不是很实用,因为一个键值在set只可能出现0或1次,这样就变成了判断某一键值是否在set出现过了。
clear(),删除set容器中的所有的元素
empty(),判断set容器是否为空
max_size(),返回set容器可能包含的元素最大个数
size(),返回当前set容器中的元素个数
begin()
end()
相关文章推荐
- HDU 2072 单词数 set使用
- HDU 2072 单词数 -- C++ string set 统计不同的单词数目
- hdu2072——单词数(STL,set)
- hdu 2072 找不同的单词数(map&set)
- HDU 2072 单词数(set)
- HDU 2072 单词数(set)
- HDU 2072 单词数(set)
- hdu_2072_统计单词数_set_检测字符串
- HDU 2072 单词数(set)
- HDU 2072 单词数(set)
- HDU 2072 单词数 (STL:set)
- hdu 2072 单词数,set,strtok
- hdu2072单词数(c++ set集合的使用)
- hdu2072—单词数(set)
- hdu 2072 单词数(set ,stringstream)
- HDU 2072 单词数(set)
- HDU 2072 单词数(Tire 和 set 两解)
- HDU 2072 单词数
- HDU 2072 单词数
- hdu 2072 单词数