首页 > 其他 > 详细

单词数 (STL set集合)

时间:2014-08-09 11:44:19      阅读:347      评论:0      收藏:0      [点我收藏+]

单词数

Problem Description
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。
 
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
 
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
 
Sample Input
you are my friend #
 
Sample Output
4
set集合用法及特点:
1,set中的元素从小到大排列且和集合一样没有重复元素;
2,set<string>::iterator s.begin() s.end()
#include<iostream>
# include<cstring>
#include<cstdio>
# include<sstream>
# include<string>
#include<set>
using namespace std;
 string wen,str;
 set<string> dict;
int main()
{

    while(getline(cin,wen)&&wen!="#")
    {

        stringstream  ch(wen);                      //在文本串中找单个单词
        while(ch >>str)
            dict.insert(str);
          printf("%d\n",dict.size());
          dict.clear();
    }
    return 0;
}


     和用map差不多:
 #include<iostream>
 # include<cstdio>
 # include<string>
 # include<map>
 # include<cstring>
 # include<sstream>
 using namespace std;
 map<string ,int> m;

 string str,ch;

/* int main()
 {
     while(getline(cin,str)&&str!="#")
     {
         int len=str.size();
         int i=0;
         m.clear();
          while(i<len)
         {
             ch="";
             while(i<len&&'a'<=str[i]&&str[i]<='z')
                    ch+=str[i++];
              if(ch!="")
             {
                m[ch]=1;
             }
             i++;
         }
         printf("%d\n",m.size());
     }
     return 0;
 }*/
int main()
{
    while(getline(cin,str)&&str!="#")
    {
       stringstream ss(str);
       m.clear();
       while(ss>>ch)
       {
          m[ch]=1;
       }
       printf("%d\n",m.size());
    }
    return 0;
}


单词数 (STL set集合),布布扣,bubuko.com

单词数 (STL set集合)

原文:http://blog.csdn.net/u013514722/article/details/38453883

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!