您的位置:首页 > 其它

hdu-2072-单词数

2014-08-01 10:21 375 查看


【BestCoder Round #3 来了!】8月3号19:00~21:00(赛前30分钟停止注册比赛)

单词数
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 28593 Accepted Submission(s): 6854



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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: