题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072
Problem Description
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
Sample Input
you are my friend
#
Sample Output
4
题解:
简单的方法可以直接用set容器。
当然也可以用字典树来做。
小坑的地方是有如下数据:
(直接输入引号内的内容)
1.
" "
0
2.
" asdf as a"
3
3.
" asdf asdf ds"
2
4.
"asdf asdf "
1
5.
直接输回车
0
AC代码(set):
#include<bits/stdc++.h> using namespace std; const int maxn=1e3+10; char str[maxn],s[32]; set<string> S; int main() { while(1) { gets(str); if(str[0]=='#') break; S.clear(); int len=strlen(str); for(int i=0,tot=0;i<len;i++) { if(isalpha(str[i])) { s[tot++]=str[i]; if(i+1==len || str[i+1]==' ') { s[tot]='