单词数(HDOJ 2072)

Problem Description

lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。

有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。

每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。

Sample Input

you are my friend
#

Sample Output

4 

My Code

怎么说呢,这题题目简单明了,代码也是简单明了,这题对C++选手比较友好,C选手只能乖乖写字典树了。。。第一次知道有istringstream这东西,它可以从字符串中读取,除了一开始的定义以外,可以直接当cin一样使用。set就是集合,集合是没有重复元素的。

#include 
#include 
#include 
using namespace std;
set Set;
string s1, s2;
int main()
{
    while (getline(cin, s1))
    {
        if (s1 == "#")
            break;
        istringstream istr(s1);
        Set.clear();
        while (istr >> s2)
            Set.insert(s2);
        cout << Set.size() << endl;
    }
    return 0;
}