hdu2072 字符串问题

Problem Description
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。
 
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
 
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
 
Sample Input
you are my friend #
 
Sample Output
4

 

用的set集合,对这个还不是就很了解…

set是一个集合,因此集合中元素不允许有重复,若需要重复,需要用multiset

这里用还到stringstream,在sstream头文件中,用法详见:http://www.cppblog.com/Sandywin/archive/2007/07/13/27984.html

例:int 与string转化:

int x=1000;

string result;

streamstring str;

str<<x;

str>>result;

result 就是1000;

stringstream流每次以空格作为读取结束标识符结尾

因为是多组数据,最后需要清空set集合,第一次没clear ,wa了两次

AC代码:

 1 #include<iostream>
 2 #include<string>
 3 #include<sstream>
 4 #include<set>
 5 using namespace std;
 6 
 7 set<string> 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<<s.size()<<endl;        
19     }
20     return 0;
21 }
View Code

 

posted @ 2018-10-03 12:41  星海violet  阅读(134)  评论(0编辑  收藏  举报