Description
D a r k D a w n作为小学期的助教,工作之一便是统计讨论区同学们的发言情况。
D a r k D a w n是真的很严格,他认为一条发言不超过10个字符是没有营养的,同时如果一条发言在先前出现过一次,也是没有营养的发言。
D a r k D a w n很想立刻统计出结果,但他真的太累了,所以请你帮帮忙,帮他统计出结果。如果你帮他完成了任务,他就奖励你一个A C。
Input
第一行一个整数n左括号 1 小於等於 n 小於等於 1000 右括号,表示发言条数
接下来有n行,每行一个字符串s左小括號 1 小於等於 左 絕對值 s 右 絕對值 小於等於 20 右小括號,表示一条发言,发言仅由大小写字母组成且区分大小写
Output
一个整数,表示有营养的发言的条数。
测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 | |
---|---|---|---|---|---|
测试用例 1 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
思路
先设置一个二维字符串储存发言。每次先用一个temp[]来gets,如果长度小等10,直接舍弃不存储。然后循环检查是否重复,如果重复也舍弃。最后再存储在二维字符串中,同时total+1.
代码
#include<stdio.h>
#include<string.h>
main()
{
int n,i=0,j,m=0,flag;
char a[1000][21],b[21];
scanf("%d%*c",&n);
while(n--){
flag=1;
gets(b);
if(strlen(b)<=10) continue;
for(j=0;j<i;j++){
if(strcmp(a[j],b)==0) {
flag=0;
break;
}
}
if(flag) {
strcpy(a[i++],b);
m++;
}
}
printf("%d\n",m);
}