HDU 2072

来源:互联网 发布:java模块化服务架构 编辑:程序博客网 时间:2024/05/16 10:58

单词数

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 36099    Accepted Submission(s): 8729


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

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

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

Sample Input
you are my friend#
 

Sample Output
4
/**坑爹啊!!!这道题竟然提交了十次一直wa,搞得我也是咬牙切齿砸键盘啊刚开始理解错了题意,以为#是每次输入的结束标志,一直runtimeerror,搞得我很是头大,后来好不容易理解了题意,可是不知怎么回事,一直控制不好一直提交不过,后来发现,忘了对最后一个单词进行判断,终于改对了-_-''废话就不说了,看题:其实特么的就是个水题,定义一个字符串集合,没出现过的就加1,遇到'\n'就输出,同时还原变量就可以了,唉!!!!!!!!*/#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<set>using namespace std;set<string>mySet;int main(){    char ch;    string str;    int count = 0;    while((ch = getchar()) != EOF)    {        if(ch == '#')            break;        else if(ch == ' ')        {            if(str.length() >= 1)                if(mySet.count(str) == 0)                {                    count++;                    mySet.insert(str);                }            str = "";        }        else if(ch == '\n')        {            if(str.length() >= 1)                if(mySet.count(str) == 0)                    count++;            printf("%d\n",count);            count = 0;            mySet.clear();            str = "";        }        else            str = str + ch;    }    return 0;}

0 0
原创粉丝点击