1178: 单词数
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 975 Solved: 202
Submit Status Web Board
Description
统计一篇文章里不同单词的总数。
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。每篇文章的单词数小于1000,每个单词最多由30个字母组成。
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
Sample Input
Sample Output
HINT
Source
#include<stdio.h>
#include<string.h>
int main()
{
char s[50000],s1[1100][50];
int i,j,k,l,l1,m,n,t;
while(gets(s),s[0]!='#')
{
memset(s1,0,sizeof(s1));
l=strlen(s);
//printf("%d\n",l);
m=0;t=0;
for(i=0;i<l;i++)
{
if(s[i]!=' ')
{
s1[m][t]=s[i];
t++;
}
if(s[i]==' '&&s[i+1]!=' '&&s[i+1]!='\0'&&t!=0)
{
m++;
t=0;
}
}
//printf("m==%d\n",m);
n=0;
for(i=0;i<=m;i++)
{
//printf("i=%d\n\n",i);
for(j=i+1;j<=m;j++)
{
//printf("%s**%s\n",s1[i],s1[j]);
if(strcmp(s1[i],s1[j])==0)
{
s1[j][0]='?';
}
}
n++;
}
// printf("%d\n",n);
k=0;
for(i=0;i<=m;i++)
{
// printf("%s**\n",s1[i]);
}
for(i=0;i<=m;i++)
{
if(s1[i][0]!='?')
{
k++;
}
}
printf("%d\n",k);
}
return 0;
}