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; }
时间: 2024-10-25 18:49:05