zoukankan      html  css  js  c++  java
  • HDUOJ-------单词数

    单词数

    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]={''};
     6 char str[maxn]={''};
     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,'',sizeof(paper));
    21         for( i=0 ; str[i]!='' ; 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,'',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
    ",sum);
    57 
    58     }
    59     return 0;
    60 }
    View Code
  • 相关阅读:
    C#并行编程-并发集合
    使用Lucene.Net实现全文检索
    Lucene.Net 站内搜索
    lucene.net helper类 【结合盘古分词进行搜索的小例子(分页功能)】
    Spring学习之Ioc
    Hibernate向MySQL插入中文数据--乱码解决
    MySql表中key的区别
    Myeclipse中相同变量高亮显示
    Mac下配置PHP+Apache+phpMyAdmin+MySql远程链接
    JQuery实现——黑客帝国代码雨效果
  • 原文地址:https://www.cnblogs.com/gongxijun/p/3204827.html
Copyright © 2011-2022 走看看