|
单词数 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。
Input 有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
Output 每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
Sample Input you are my friend #
Sample Output 4
Author Lily
|
代码:
#include<stdio.h>
#include<string.h>
#include<iostream> //exit(0);
char str[1000000];
char s[1000][50];
int main()
{
char *p;
int c,sum,i,len,t,j,l,k,u,v;
while(gets(str))
{ v=-1;u=0;
c=0;
sum=0;
memset(s,0,sizeof(s));
len=strlen(str);
for(i=0;i<len;++i)
{
if(str[i]=='#')
exit(0);//break;
if(str[i]!=' '&&c==0)
{ u=0;s[++v][u]=str[i]; //v 是存放的单词个数 u 是每个单词的字母
c=1; // c=1 处不是空格
}
else if(str[i]!=' ')
s[v][++u]=str[i];
else if(str[i]==' ')
c=0;
}int sum1=0;
for(k=0;k<=v;k++)
{ for(l=k+1;l<=v;++l)
if(strcmp(s[l],s[k])==0)
break; //筛除 相同的单词
if(l==v+1)
sum1++;
}
printf("%d\n",sum1);
}
return 0;
}