水题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; }
                    
                
                
            
        
浙公网安备 33010602011771号