首页 > 代码库 > 单词数 (set)

单词数 (set)

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

Input

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

Output

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

Sample Input

you are my friend
#

Sample Output

4


思路: 字典树还是可以解决这个问题的,但是最近新学了STL 所以就用set来解决这个问题了


set 可以理解为是数学的集合了,所以关于集合的概念 就去问自己的高中老师吧



直接AC代码:

#include<iostream>
#include<string>
#include<set>
#include<sstream>
using namespace std;
set <string> dict;

int main()
{
    string s,buff;
    while(getline(cin,s))
    {
        dict.clear();
        int tot=0;
        if(s[0]=='#')
            break;
        for(int i=0;i<s.length();i++)
            if(isalpha(s[i]))
                s[i]=tolower(s[i]);
            else
                s[i]=' ';
        stringstream ss(s);
        while(ss>>buff)
        {
            dict.insert(buff);
        }
        for(set<string>::iterator it=dict.begin();it!=dict.end();++it)
        {
            tot++;
        }
        cout<<tot<<endl;
    }
    return 0;
}


单词数 (set)