同的单词 Time Limit:1s Memory limit:32M Accepted Submit:25 Total Submit:36 给出一个英文单词的列表,计算有多少不同的单词在列表中。 输入数据 本题有多组输入数据,你必须处理到EOF为止 每组数据的第一行有一个整数n, 1<=n<=1000.下面的n行每行一个单词,每个单词的长度不超过20。单词大小写忽略。 输出数据 每组数据输出一个整数,表示不同的单词数。 输入样例5 FZU FzU LOY BNh FZU 输出样例3 Original: FOJ月赛-2007年3月 #include<iostream>#include<cstring>using namespace std; void do_with(char a[]){ int x; for(x=0;x<strlen(a);x++) if(a[x]>=65&&a[x]<=90)a[x]+=32;} int main(){ int n,i,j,count; char (*word)[20]; while(scanf("%d",&n)!=EOF) { count=0; word=new char[n][20]; for(i=0;i<n;i++) { cin>>word[i]; do_with(word[i]); } for(i=0;i<n-1;i++) { if(strcmp(word[i],"0")==0)continue; for(j=i+1;j<n;j++) if(strcmp(word[i],word[j])==0)strcpy(word[j],"0"); } for(i=0;i<n;i++) if(strcmp(word[i],"0")!=0)count++; cout<<count<<endl; } return 0;}

评论