水题hdu2072——猜数字(set的用法)

单词数

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


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

 

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

 

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

 

Sample Input
you are my friend #
 

 

Sample Output
4
 
解题思路:先整行输入,之后分割字符串。注意最后一位是‘\0’,所以要把它换成空格,这样就不会漏下最后一个。
 
代码:
#include <iostream>
#include <string.h>
#include <cstdlib>
#include <cstdio>
#include <math.h>
#include <set>
using namespace std;

char s[10010];
set<string> st;

int main()
{
    string ss;
    while(gets(s) && strcmp(s,"#")!=0){
        int len = strlen(s);
        ss = "";
        s[len] = ' ';
        for(int i=0; i<=len; i++){
            if(s[i] != ' '){
                ss +=s[i];
            }else{
                if(ss.length()){
                    st.insert(ss);
                }
                ss.clear();
            }
        }
        printf("%d\n",st.size());
        st.clear();
    }
    return 0;
}
View Code

 

posted on 2017-08-07 12:56  P.Lifer  阅读(163)  评论(0)    收藏  举报

导航