单词数
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 44819 Accepted Submission(s): 10964
Problem Description
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
Sample Input
you are my friend #
Sample Output
4
Author
Lily
Source
Recommend
思路:
简单的水题,也错了两次,最后还没对!!!。。。我的思路卡在哪里了不知道,就是按照一结构体,排序后遍历,是不是单词数目大于>1000000....以后再看吧!
错误的代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define MYDD 110000
using namespace std;
struct Q {
char a[32];
} dd[MYDD];
bool cmp_a(Q x,Q y) {//对单词进行排序
return strcmp(x.a,y.a)>0? 1:0;
}
int main() {
char temp[32];
while(scanf("%s",temp)!=EOF) {
strcpy(dd[0].a,temp);
int v=0;
while(strcmp(dd[v].a,"#")!=0) {
v++;
scanf("%s",dd[v].a);
}
sort(dd,dd+v,cmp_a);//排序
int ans=1;
for(int j=1; j<v; j++) {
if(strcmp(dd[j].a,dd[j-1].a)!=0)
ans++;//当前单词和前一个不同
}
printf("%d\n",ans);
}
return 0;
}