Problem Description
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
Sample Input
you are my friend #
Sample Output
4
用的set集合,对这个还不是就很了解…
set是一个集合,因此集合中元素不允许有重复,若需要重复,需要用multiset
这里用还到stringstream,在sstream头文件中,用法详见:,
例:int 与string转化:
int x=1000;
string result;
streamstring str;
str<<x;
str>>result;
result 就是1000;
stringstream流每次以空格作为读取结束标识符结尾
因为是多组数据,最后需要清空set集合,第一次没clear ,wa了两次
AC代码:
1 #include2 #include 3 #include 4 #include 5 using namespace std; 6 7 set s; 8 9 int main()10 {11 string str,ss;12 while(getline(cin,str)&&str[0]!='#')13 {14 s.clear();15 stringstream stream(str); //赋值:stream >> result; 每次以空格作为读取结束标识16 while(stream>>ss)17 s.insert(ss);18 cout< <