hdu 2072

来源:互联网 发布:大数据培训学校 编辑:程序博客网 时间:2024/05/27 01:37

这题吃了几个WA  检查了多次计数出了点问题  我的思路就是将一个个单词进二维数组  最后删掉重复的单词 

单词数

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


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

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

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

Sample Input
you are my friend#
 

Sample Output
4
 
#include<stdio.h>#include "string.h"char map[100][100];char ex[100];int i,j,sum;int main(void){    while(1)    {        gets(ex);        if(ex[0]=='#') break;        i=j=sum=0;                while(ex[i]==' ') i++;        while(ex[i])        {            int tmp=0;            while(ex[i]!=' '&&ex[i]!=0) {map[j][tmp++]=ex[i]; i++;}            while(ex[i]==' ') i++;            map[j][tmp]=0;            j++;        }        /* 这是之前WA的计数代码  碰到最后一个单词后面有空格会多统计一次单词数        while(ex[i])        {            int tmp=0;            while(ex[i]==' ') i++;            while(ex[i]!=' '&&ex[i]!=0) {map[j][tmp++]=ex[i]; i++;}            map[j][tmp]=0;            j++;        }*/        for(int m=0;m<j;m++)        {            for(int n=m+1;n<j;n++)                if(strcmp(map[m],map[n])==0&&map[n][0]!=1) {                    map[n][0]=1;                }        }        for(int i=0;i<j;i++)        {            if(map[i][0]!=1) sum++;        }        printf("%d\n",sum);    }}

0 0
原创粉丝点击