HDUOJ-------单词数

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:06   787   0

单词数

Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 21651 Accepted Submission(s): 5228


Problem Description
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。

Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。

Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。

Sample Input
you are my friend
#

Sample Output
4

Author
Lily

Source

Recommend
思路: 先设置一个字符型数组来存储字符,然后逐一将每一个单词存到二维数组中。接着排序,然后统计不同即可!!
刚开始数组开小了,runtime error很多次!!最后改到很大才过了,比较的那个....
估计用c++会好很多.....
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<stdlib.h>
 4 #define maxn 10001
 5 char paper[maxn][100]={'\0'};
 6 char str[maxn]={'\0'};
 7 int cmp(const void *a,const void *b)
 8 {
 9     return strcmp((char *)a,(char *)b);
10 }
11 int main()
12 {
13 
14     int i,count,k;
15     bool flag;
16     while(gets(str),*str!='#')
17     {
18         flag=true;
19         count=-1;
20         memset(paper,'\0',sizeof(paper));
21         for( i=0 ; str[i]!='\0' ; i++ )
22         {
23             if(flag&&str[i]!=' ')
24             {
25                 flag=false;
26                 count++;
27                 k=0;
28             }
29             else 
30              if(flag==false&&str[i]==' ')
31             {
32                 flag=true;
33                 continue;
34             }
35          if(str[i]!=' ')
36          {
37              paper[count][k++]=str[i];
38          }
39          
40         }
41         memset(str,'\0',sizeof(str));
42         //for(i=0;i<=count;i++)
43          //puts(paper[i]);
44     if(count>0)
45         qsort(paper,count+1,100*sizeof(char),cmp);
46     /*    for(i=0;i<=count;i++)
47             puts(paper[i]);
48     */
49         int sum=1;
50         for(i=1;i<=count;i++)
51         {
52             if(strcmp(paper[i-1],paper[i])!=0)
53                 sum++;
54         }
55         if(count==-1)sum=0;
56         printf("%d\n",sum);
57 
58     }
59     return 0;
60 }
View Code

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP