单词数(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;
}