寻找克隆人
寻找克隆人
时间限制:1000 ms | 内存限制:65535 KB
难度:3
- 描写叙述
-
美国的一个小镇近日被外星人突击,一部分居民被其带走并克隆,如今,科学家提取了镇上一些人的DNA,请找出当中具有同样被克隆个数的DNA个数,比如以下的9个序列
AAAAAA
ACACAC
GTTTTG
ACACAC
GTTTTG
ACACAC
ACACAC
TCCCCC
TCCCCC
当中TCCCCC,GTTTTG分别具有两个同样个体,ACACAC有四个。AAAAAA为一个,则依照行数相应输出其个数第一行1,第二行2,第四行1,其它行输出0,共9行
- 输入
- 序列数不超过20000,每序列不超过20个字符
输入以0 0结束 - 输出
- 如题中描写叙述输出就可以
- 例子输入
-
9 6 AAAAAA ACACAC GTTTTG ACACAC GTTTTG ACACAC ACACAC TCCCCC TCCCCC 0 0
- 例子输出
-
1 2 0 1 0 0 0 0 0
-
代码:
-
#include<stdio.h> #include<stdlib.h> #include<string.h> int cmp(const void *a,const void *b) { return (strcmp((char*)a,(char*)b)); } int main() { int m,n,i,num[20005]; char str[20002][21]; while(scanf("%d%d",&m,&n)!=EOF&&m!=0&&n!=0) { for(i=0;i<m;i++) scanf("%s",str[i]); qsort(str,m,sizeof(str[0]),cmp); memset(num,0,sizeof(num)); int count=1; for(i=1;i<=m;i++) { if(strcmp(str[i],str[i-1])==0) count++; else { num[count]++; count=1; } } for(i=1;i<=m;i++) printf("%d\n",num[i]); } return 0; }